2

我一直在阅读有关此主题的其他帖子中的答案,但我还没有找到所有方法中最好的方法。

这是我现在采用的方法,但我不知道它是否一直最糟糕(据我测试每一个都为我工作)或者是否有更好的方法。

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是在活动“不可见”时执行的。因此,当您的应用程序(它说应用程序不是活动)进入后台时,所有活动都是“不可见的”,因此它们会执行 onStop 方法,因此其背后的想法是每次活动开始时添加一个,每次减去一个隐藏了一个活动,因此如果变量“活动”的值为0“零”,这意味着在某个时间点开始的所有活动现在都不可见,因此当您的 APP 从后台返回并执行onRestart在“前面”的活动上的方法,您可以检查是来自后台还是只是重新启动活动。

我将不胜感激有关此主题的一些反馈。

4

0 回答 0