锁屏和打开其他应用的生命周期有什么区别android
What is the difference in lifecycle between lock screen and opening other application android
我现在正在开发 application
,问题是当我从 notification
按下 home
或 open
whatsapp
并重新打开application
,它从 application
的开头重新开始,而不是 resuming
到它离开的状态。
锁定然后解锁时,屏幕会恢复到之前的状态。
因此,我尝试跟踪这两个进程之间的 life-cycle
(锁定屏幕和打开其他 app/home)。
让我感到困惑的是,当我锁定屏幕或打开其他 app/home 时,两个进程都显示相同的 lifecycle
、 onPause()
和 onStop()
被触发。然后,当我返回应用程序时,onRestart()
和 onResume()
被触发。
如果两者显示相同的结果,为什么锁定屏幕和解锁继续 application
,而按 home
或另一个 application
并重新打开 application
却没有?
感谢任何解决方案或解释。谢谢。
代码:
@Override
protected void onRestart(){
System.out.println("Restart");
super.onRestart();
}
@Override
protected void onResume(){System.out.println("Resume");
gamePanel.resumeActivity();
super.onResume();
}
@Override
protected void onPause(){
gamePanel.pauseMusic();
gamePanel.pauseActivity();
System.out.println("PAUSE");
super.onPause();
}
@Override
protected void onStop(){
System.out.println("STOP");
super.onStop();
}
@Override
protected void onDestroy(){
content.removeView(gamePanel);
content.removeView(editText);
gamePanel.stopMusic();
System.out.println("DESTROY");
super.onDestroy();
}
我认为您必须使用 onSaveInstanceState(Bundle savedInstanceState) 才能在您的应用销毁时获取数据。
请看一下that Link,对你有帮助
我现在正在开发 application
,问题是当我从 notification
按下 home
或 open
whatsapp
并重新打开application
,它从 application
的开头重新开始,而不是 resuming
到它离开的状态。
锁定然后解锁时,屏幕会恢复到之前的状态。
因此,我尝试跟踪这两个进程之间的 life-cycle
(锁定屏幕和打开其他 app/home)。
让我感到困惑的是,当我锁定屏幕或打开其他 app/home 时,两个进程都显示相同的 lifecycle
、 onPause()
和 onStop()
被触发。然后,当我返回应用程序时,onRestart()
和 onResume()
被触发。
如果两者显示相同的结果,为什么锁定屏幕和解锁继续 application
,而按 home
或另一个 application
并重新打开 application
却没有?
感谢任何解决方案或解释。谢谢。
代码:
@Override
protected void onRestart(){
System.out.println("Restart");
super.onRestart();
}
@Override
protected void onResume(){System.out.println("Resume");
gamePanel.resumeActivity();
super.onResume();
}
@Override
protected void onPause(){
gamePanel.pauseMusic();
gamePanel.pauseActivity();
System.out.println("PAUSE");
super.onPause();
}
@Override
protected void onStop(){
System.out.println("STOP");
super.onStop();
}
@Override
protected void onDestroy(){
content.removeView(gamePanel);
content.removeView(editText);
gamePanel.stopMusic();
System.out.println("DESTROY");
super.onDestroy();
}
我认为您必须使用 onSaveInstanceState(Bundle savedInstanceState) 才能在您的应用销毁时获取数据。 请看一下that Link,对你有帮助