How do I release resources used in 1 activity?
So I got 3 layouts and activity for each layout, but the problem is when I switch between those activities my app crashes and I get this:
I started getting this error ever since I added adds to my application. My whole logcat https://i.sstatic.net/h1s2j.png
XML Layout:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
android:id="@+id/RelativeLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="#000000" >
<ImageButton
android:id="@+id/dugme2"
android:layout_width="150dp"
android:layout_height="90dp"
android:layout_alignBottom="@+id/dugme1"
android:layout_alignParentRight="true"
android:background="#0000"
android:onClick="onClick"
android:scaleType="fitXY"
android:src="@drawable/dragunov" />
<ImageButton
android:id="@+id/dugme5"
android:layout_width="150dp"
android:layout_height="90dp"
android:layout_alignParentLeft="true"
android:layout_alignTop="@+id/dugme6"
android:background="#0000"
android:onClick="onClick"
android:scaleType="fitXY"
android:src="@drawable/scout" />
<SeekBar
android:id="@+id/seekSnipers"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:progressDrawable="@drawable/red_scrubber_progress"
android:thumb="@drawable/red_scrubber_control" />
<com.google.ads.AdView
android:id="@+id/adView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
ads:adSize="BANNER"
ads:adUnitId="ID"
ads:loadAdOnCreate="true" >
</com.google.ads.AdView>
</RelativeLayout>
It's pretty much same for other layouts as well, except for different resources and ID's. Ad code is same in every layout.
YOu can release resources by using the following code. This should be called in onDestroy() of u=your activity.
private void unbindDrawables(View view) {
if (view.getBackground() != null) {
view.getBackground().setCallback(null);
}
if (view instanceof ViewGroup) {
for (int i = 0; i < ((ViewGroup) view).getChildCount(); i++) {
unbindDrawables(((ViewGroup) view).getChildAt(i));
}
((ViewGroup) view).removeAllViews();
view.setBackgroundResource(0);
}
}
More over to destroy activity you should call finish() after calling next activity.