0

アプリの実行中に onBackPressed メソッドが呼び出されないため、アプリを適切に終了できません ログ メッセージを追加しましたが、どこにも呼び出されていません。

主な活動

@Override
public void onBackPressed() {
    Log.v(TAG, "=== onBackPressed start ===");

    if (GoogleSocial.onBackPressed())
        return;
    else
        super.onBackPressed();

    Log.v(TAG, "=== onBackPressed end ===");
}

Googleソーシャル

public class GoogleSocial {
private static final String TAG = "Chartboost";

static Chartboost s_cb = null;
static Activity s_act = null;
private static AppLovinSdk sdk;


public static void init(final Activity act, final String appId, final   String appSign, String mopubId, boolean isPaid) {
    s_act = act;
    act.runOnUiThread(new Runnable() {
        public void run() {
            Chartboost.startWithAppId(act, appId, appSign);
            Chartboost.setLoggingLevel(Level.ALL);
            AppLovinSdk.initializeSdk(s_act);

        }
    });


}

public static void showBanner() {

}

public static void hideBanner() {

}
public static void showInterstitialAdForSdkKey( final String sdkKey){
    Log.v(TAG, "showFullScreen");           

    sdk = AppLovinSdk.getInstance("bIEl5bkQbMybxFHahXaFxgSMsK2MesEF8qDLfXN1BEFQMiPam5EP9qe8eAhADrxCe8X", new AppLovinSdkSettings(), s_act);
    AppLovinInterstitialAd.show(s_act);

    s_act.runOnUiThread( new Runnable() {

        public void run() {

            AppLovinInterstitialAd.show(sdk, s_act);
    }
});

}
public static void showAd() {
    Log.v(TAG, "Aggregator.showAd() is called...");

    s_act.runOnUiThread(new Runnable() {                            
        public void run() {
//              s_cb.showMoreApps();
            showInterstitialAdForSdkKey("bIEl5bkQbMybxFHahXaFxgSMsK2MesEF8qDLfXN1BEFQMiPam5EP9qe8eAhADrxCe8X");
            Chartboost.showInterstitial(CBLocation.LOCATION_DEFAULT);
//              Chartboost.showRewardedVideo(CBLocation.LOCATION_DEFAULT);
//              Chartboost.showMoreApps(CBLocation.LOCATION_DEFAULT);
        }         
    });
}

public static void showMoregame() {
    Log.v(TAG, "showMoreApps() is called...");

    s_act.runOnUiThread(new Runnable() {                            
        public void run() {
//              s_cb.showMoreApps();
//              Chartboost.showInterstitial(CBLocation.LOCATION_DEFAULT);
//              Chartboost.showRewardedVideo(CBLocation.LOCATION_DEFAULT);
            Chartboost.showMoreApps(CBLocation.LOCATION_DEFAULT);
        }         
    });
}

public static void onStart() {

     Chartboost.onStart(s_act);    

}
public static void onPause() {

    Chartboost.onPause(s_act);
}

public static void onStop() {

    Chartboost.onStop(s_act);

   }

public static void onResume() {
    Chartboost.onResume(s_act);
}

public static void onDestroy() {

    Chartboost.onDestroy(s_act);

}
public static boolean onBackPressed() {

    if (Chartboost.onBackPressed())
        return true;
    return true;
}
}
4

3 に答える 3

0

これを試してみてください

 @Override
public void onBackPressed() {
    // TODO Auto-generated method stub

     AlertDialog.Builder ald = new AlertDialog.Builder(MainActivity.this);
        ald.setTitle("Exit");
        ald.setMessage("Are you sure you want to quit.?");
        ald.setPositiveButton("Ok", new DialogInterface.OnClickListener()
        {
            @Override
            public void onClick(DialogInterface dialog, int which) 
            {
                moveTaskToBack(true);
                android.os.Process.killProcess(android.os.Process.myPid());
                System.exit(1);
            }
        });

        ald.setNegativeButton("Cancel", null);
        ald.show();
}
于 2015-04-02T07:48:14.180 に答える
0

onBackPressed()うまくいかない場合は、メソッドをオーバーライドしonKeyDown()て、キーが有効かどうかを確認Backできます

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        // Do something.
    }

これはあなたのために働くかもしれません。

于 2015-04-02T07:03:49.363 に答える
0

アプリが戻るボタンに応答するようにするには、常に を呼び出す必要がありますsuper.onBackPressed()。OverridenonBackPressed()には、if elseへの呼び出しをスキップさせる可能性のある条件がありますsuper.onBackPressed()

于 2015-04-02T07:14:09.067 に答える