android - Admob setAdListener not working -
i have created 1 banner ad, (x) button destroy adview. while load ad again in same activity wont calling adlistener method. first time while app starts working. first time can visible (x) button while ad appears when destroy ad using (x) button destroy ad second time while load ad, loads ad not calling 'adlistener' button not going visible.
this code:
<framelayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_centerhorizontal="true" android:layout_centervertical="true"> <framelayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="15dp" > <linearlayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:orientation="vertical" > <com.google.android.gms.ads.adview android:id="@+id/adview" android:layout_width="wrap_content" android:layout_height="wrap_content" ads:adsize="medium_rectangle" ads:adunitid="@string/banner_home_footer"> </com.google.android.gms.ads.adview> </linearlayout> </framelayout> <linearlayout android:id="@+id/layout_close_banner_ad" android:layout_width="30dp" android:layout_height="30dp" android:orientation="vertical" android:gravity="center" android:layout_gravity="end" android:visibility="gone" android:background="@drawable/round_view"> <imageview android:id="@+id/imageview_close_banner_ad" android:layout_width="20dp" android:layout_height="20dp" android:src="@drawable/ic_action_close_dialog" /> </linearlayout> </framelayout> class file :
madview = (adview) findviewbyid(r.id.adview); adrequest = new adrequest.builder() .build(); madview.setadlistener(new adlistener() { @override public void onadclosed() { log.i("ads", "onadclosed"); super.onadclosed(); } @override public void onadfailedtoload(int i) { log.i("ads", "onadfailedtoload"); super.onadfailedtoload(i); } @override public void onadleftapplication() { log.i("ads", "onadleftapplication"); super.onadleftapplication(); } @override public void onadopened() { log.i("ads", "onadopened"); super.onadopened(); adclosebutton.setvisibility(view.visible); } @override public void onadloaded() { log.i("ads", "onadloaded"); super.onadloaded(); adclosebutton.setvisibility(view.visible); } }); private void showbannerad() { madview.loadad(adrequest); } // destroy ad while click on close icon
adclosebutton.setonclicklistener(new view.onclicklistener() { @override public void onclick(view v) { if(madview != null){ madview.destroy(); } adclosebutton.setvisibility(view.gone); } });
from docs destroy
destroy ad view. method should called in parent activity's ondestroy() method. no other methods should called on ad view after destroy() called.
instead of calling destroy set visibility of adview view.invisible or view.gone. in onadloaded of adview make adview visible.
Comments
Post a Comment