これからすべてのあなたの活動を広げ、あなたの基本活動のonResume
にあなたのものをすることができます。
public abstract class BaseActivity extends AppCompatActivity {
@Override
protected void onResume() {
super.onResume();
// do your stuff here
}
}
しかし、あなたのアプリだけを再開するときにあなたのものをする必要がある場合は、少し複雑になるかもしれません。あなたのアプリが再開したときに呼び出される直接的なメソッドはありません。
だからあなたは、以下のようなあなたのApplication
クラスでカスタムコンポーネントのコールバックを作成することができます。
public class CustomComponentCallback implements ComponentCallbacks2 {
@Override
public void onTrimMemory(int level) {
if (level == ComponentCallbacks2.TRIM_MEMORY_UI_HIDDEN) {
isAppWillResume = true;
}
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
}
@Override
public void onLowMemory() {
}
}
を、以下のようなカスタムアクティビティのライフサイクルコールバックを作成します。
private static final class CustomLifecycleCallbacks implements ActivityLifecycleCallbacks {
@Override
public void onActivityResumed(Activity activity) {
if(isAppWillResume){
// do your staff
isAppWillResume = false;
}
}
@Override
public void onActivityPaused(Activity activity) {
}
//...
}
は、静的ブールフィールドを定義します。あなたのアプリケーションクラスは以下のようになります:あなたのコールバックを登録します。
private static boolean isAppWillResume = true;
、アプリケーションの
onCreate
に登録カスタムコールバックは:
registerComponentCallbacks(new CustomComponentCallback());
registerActivityLifecycleCallbacks(new CustomLifeCycleCallbacks());
私はこのアプリが再開されたかどうかを検出するために最善の方法だかはわからないが、このソリューションは、私のために動作します。
編集:BaseActivityですべてのアクティビティを拡張したくない場合は、私が書いたカスタムコールバックだけを登録でき、onResumeでは必要な作業を行うことができます。 あなたの活動のいずれかが再開されたときに呼び出されます。
Good Luck!
とてもシンプルです!!申し訳ありませんが、私はupvoteに十分な評判を持っていません。 –
これは素晴らしいことです:)私たちがあなたの質問に答えたと思うなら、あなたが最高だと思う答えを受け入れてください。ありがとうございました。 –
@RamanKrishnan upvoteは必要ありません。答えを受け入れるのです。 –