假设我有一个 Hello World 单一 Activity 应用程序。我启动了这个应用程序。
在每种情况下调用了哪些方法:
- 按下主页按钮:?
按下返回按钮:?
接到电话:?
一旦用户通过应用图标再次启动应用,会调用哪些方法(假设操作系统没有“其他应用需要内存条件”):
- 按下主页按钮:?
按下返回按钮:?
接到电话:?
谢谢大家。
编辑:额外积分:用户如何在不调用 onStop
的情况下调用 onPause
?
最佳答案
为了了解 Activity 生命周期,我创建了演示参见 HERE
我添加了不同的案例研究。
MainActivity.java
public class MainActivity extends AppCompatActivity {
private static final String TAG = "State changed";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.i(TAG, "onCreate: ");
}
public void OpenDialog(View view) {
final AlertDialog alertDialog = new AlertDialog.Builder(MainActivity.this).create(); //Read Update
alertDialog.setTitle("hi");
alertDialog.setMessage("this is my app");
alertDialog.setButton("Continue..", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// here you can add functions
alertDialog.dismiss();
}
});
alertDialog.show(); //<-- Show dialog
}
@Override
protected void onStart() {
super.onStart();
Log.i(TAG, "onStart: " );
}
@Override
protected void onResume() {
super.onResume();
Log.i(TAG, "onResume: ");
}
@Override
protected void onPause() {
super.onPause();
Log.i(TAG, "onPause: ");
}
@Override
protected void onStop() {
super.onStop();
Log.i(TAG, "onStop: ");
}
@Override
protected void onRestart() {
super.onRestart();
Log.i(TAG, "onRestart: ");
}
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
Log.i(TAG, "onSaveInstanceState: ");
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
Log.i(TAG, "onRestoreInstanceState: ");
}
@Override
protected void onDestroy() {
super.onDestroy();
Log.i(TAG, "onDestroy: ");
}
@Override
public void onBackPressed() {
super.onBackPressed();
Log.i(TAG, "onBackPressed: ");
}
}
案例研究
案例 1 = 首先点击应用图标
注意:这里没有显示 onRestoreInstanceState 因为它在运行时执行
我/状态改变:onCreate:
我/状态改变:onStart:
我/状态改变了:onResume:
案例 2 = 点击主页按钮(屏幕熄灭或来电时同样发生)
我/状态改变:onPause:
我/状态改变了:onSaveInstanceState:
I/状态改变:onStop:
案例 3 =(案例 2 继续)通过最近打开应用程序
I/状态改变:onRestart:
我/状态改变:onStart:
我/状态改变了:onResume:
案例 4 = 单击返回按钮(onBackPressed 方法调用)
我/状态改变:onPause:
I/状态改变:onStop:
我/状态改变:onDestroy:
案例 5 = 配置更改(旋转屏幕)
我/状态改变:onPause:
我/状态改变了:onSaveInstanceState:
I/状态改变:onStop:
我/状态改变:onDestroy:
我/状态改变:onCreate:
我/状态改变:onStart:
我/状态改变了:onRestoreInstanceState:
我/状态改变了:onResume:
关于android - 以下情况在Activity Lifecycle中调用了哪些方法:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5019686/