ありがとうございます。これは、Application
クラスを拡張し、ActivityLifecycleCallbacks
インターフェイスを実装するクラスを使用して実現できます。まず、ここではこのクラスのコードは次のとおりです。
public class MyApplication extends Application implements ActivityLifecycleCallbacks {
public boolean appInBackground;
private Handler mHandler;
...
@Override
public void onActivityResumed(Activity activity) {
Log.i("Activity Resumed", activity.getLocalClassName());
mHandler.cancelCallbacksAndMessages(null);
appInBackground = false;
}
@Override
public void onActivityPaused(Activity activity) {
Log.i("Activity Paused", activity.getLocalClassName());
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
appInBackground = true;
}
}, 5000);
}
...
}
あなたは上記のコードでは、我々は基本的に5秒の猶予期間が他の1つのアクティビティから切り替えるためのアプリを与えている気付いた場合。それ以上であれば、アプリがバックグラウンドであったことを意味します。上記のクラスはandroid:name:""
プロパティのマニフェストファイルの<application>
タグにandroid:name:"MyApplication"
として登録する必要があります。
onPause()
オーバーライドし、あなたの活動でこれを使用するには:
private boolean resumedFromBg;
@Override
protected void onPause() {
super.onPause();
resumedFromBg = ((MyApplication) getApplication()).appInBackground;
}
が、私は私の主な活動のonResume()が呼び出されたときに区別したい」
〜あなたがすべての問題に実行する場合、私に教えてください私がWhatsappや他のアプリのアクティビティからアプリに戻ったとき " - なぜですか? – CommonsWare