Java Question Close Activity From Library

Johnmcenroy

Active Member
Licensed User
Longtime User
I have an ADS library with following code:

B4X:
public Intent ShowMopub_Interstitial(BA pBA, String AdUnitID){
      
        MoPubLibFullInt.AdUnitID = AdUnitID;
        Intent intent1 = new Intent(pBA.activity,MoPubLibFullInt.class);
        return intent1;
    }

So in B4A I write :
B4X:
StartActivity (ads.ShowMopub_Interstitial("KEY"))

So I load full screen interstitial ad in separate activity , but when I close interstitial , activity remains active. How can I close B4A Activity from JAVA code ?

Thanks
 
Last edited:

Johnmcenroy

Active Member
Licensed User
Longtime User
Thanks Erel. But seems that I am doing something wrong. My app crashes.
I have two classes :
MoPubLibFull with that code:
B4X:
import android.content.Intent;
import anywheresoftware.b4a.BA;
import anywheresoftware.b4a.objects.ViewWrapper;

import com.appbrain.AppBrain;
import com.mopub.mobileads.MoPubView;
import com.tapfortap.TapForTap;

@BA.ActivityObject
@BA.Author ("Johnmcenroy")
@BA.Version(2.0F)
@BA.Permissions(values={"android.permission.INTERNET","android.permission.ACCESS_NETWORK_STATE","android.permission.ACCESS_COARSE_LOCATION"})
@BA.DependsOn (values={"mopub-sdk","android-support-v4","appbrain-sdk-android-v9.2","applift-mopub-v9.2","GoogleAdMobAdsSdk-6.4.1","MMSDK","TapForTap"})
@BA.ShortName("MopubAds")

public class MoPubLibFull extends ViewWrapper<MoPubView> {

    /**
    * // Enter your Interstitial Ad Unit ID from www.mopub.com
    */

    public Intent ShowMopub_Interstitial(BA pBA, String AdUnitID){
    
        MoPubLibFullInt.AdUnitID = AdUnitID;
        Intent intent1 = new Intent(pBA.activity,MoPubLibFullInt.class);
        return intent1;
    }
}

and MoPubLibFullInt with following code:
B4X:
package mopublibfull;

import com.mopub.mobileads.MoPubErrorCode;
import com.mopub.mobileads.MoPubInterstitial;
import com.mopub.mobileads.MoPubInterstitial.InterstitialAdListener;
import com.tapfortap.TapForTap;
import com.appbrain.AppBrain;

import android.app.Activity;
import android.os.Bundle;

public class MoPubLibFullInt extends Activity implements InterstitialAdListener {
          
MoPubInterstitial mInterstitial;

public static String AdUnitID;
public static String TapAPI;
public static Boolean AppbrainEnable;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if (AppbrainEnable = true)
            AppBrain.init(this);
    if (TapAPI != null)
          TapForTap.initialize(this,TapAPI);
    mInterstitial = new MoPubInterstitial(this, AdUnitID);
    mInterstitial.setInterstitialAdListener(this);
    mInterstitial.load();
}

@Override
protected void onDestroy() {
    mInterstitial.destroy();
    super.onDestroy();
}

// InterstitialAdListener methods
@Override
public void onInterstitialLoaded(MoPubInterstitial interstitial) {
    if (interstitial.isReady()) {
        mInterstitial.show();
    } else {
        // Other code
    }
}

@Override
public void onInterstitialDismissed(MoPubInterstitial arg0) {
    // TODO Auto-generated method stub
}

@Override
public void onInterstitialFailed(MoPubInterstitial arg0, MoPubErrorCode arg1) {
    // TODO Auto-generated method stub
  
}

@Override
public void onInterstitialShown(MoPubInterstitial arg0) {
    // TODO Auto-generated method stub
  
}

@Override
public void onInterstitialClicked(MoPubInterstitial arg0) {
    // TODO Auto-generated method stub
  
}
}

So in B4A I call:
B4X:
StartActivity (ads.ShowMopub_Interstitial("MY_KEY"))

So I get an Activity with interstitial Ad (MoPubLibFullInt) , but when I close interstitial ad , Activity raised from B4A doesn't close and remains active but without interstitial ad. I want to close that activity when I close my interstitial ad. How I understand it must close Activity in methodes onDestroy() or onInterstitialDismissed() , but when I write there pBA.activity.finish () it crashes.
 
Last edited:

Johnmcenroy

Active Member
Licensed User
Longtime User
Have you tried:
B4X:
StartActivity(ads.ShowMopub...)
Activity.Finish

But I want to close activity when I am closing ad.
Erel please look at video :
http://www.screenr.com/vaQH

So first starts Activity 1 then I click for button to load interstitial ad and Activity 2 with ad is loading , then I am closing ad but Activity 2 doesn't close , remains active. How can I close it ?
 
Top