このトピックに関する他の投稿の回答を読んでいますが、すべてのアプローチの中で何が最善かはわかりません。
これは私が今持っている私のアプローチですが、それが常に最悪なのか(私がテストした限り)、それともより良い方法があるのか どうかはわかりません。
public class FatherClass extends Activity {
private static int activities = 0;
public void onCreate(Bundle savedInstanceState, String clase) {
super.onCreate(savedInstanceState);
}
protected void onRestart()
{
super.onRestart();
if(activities == 0){
Log.i("APP","BACK FROM BACKGROUND");
}
}
protected void onStop(){
super.onStop();
activities = activities - 1;
}
protected void onStart(){
super.onStart();
activities = activities + 1;
}
}
説明: アクティビティが「表示」されている場合にonStartが実行され、アクティビティが「表示されていない」場合にonStopが実行されます。したがって、APP(アクティビティではなくAPPと表示されます)がバックグラウンドになると、すべてのアクティビティが「表示されない」ため、onStopメソッドが実行されます。そのため、この背後にあるアイデアは、アクティビティが開始されるたびに1を追加し、毎回1を減算することですアクティビティは非表示になっているため、変数「アクティビティ」の値が0「ゼロ」の場合、ある時点で開始されたすべてのアクティビティが表示されなくなったことを意味するため、APP がバックグラウンドから戻ってonRestartを実行すると「フロント」のアクティビティのメソッドを使用すると、バックグラウンドから来ているのか、アクティビティを再開しているだけなのかを確認できます。
このトピックに関するフィードバックをいただければ幸いです。