Android活动生命周期介绍
示例
假定具有MainActivity的应用程序可以通过单击按钮来调用Next Activity。
public class MainActivity extends AppCompatActivity {private final String LOG_TAG = MainActivity.class.getSimpleName();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.d(LOG_TAG, "calling onCreate from MainActivity");
}
@Override
protected void onStart() {
super.onStart();
Log.d(LOG_TAG, "calling onStart from MainActivity");
}
@Override
protected void onResume() {
super.onResume();
Log.d(LOG_TAG, "calling onResume from MainActivity");
}
@Override
protected void onPause() {
super.onPause();
Log.d(LOG_TAG, "calling onPause from MainActivity");
}
@Override
protected void onStop() {
super.onStop();
Log.d(LOG_TAG, "calling onStop from MainActivity");
}
@Override
protected void onDestroy() {
super.onDestroy();
Log.d(LOG_TAG, "calling onDestroy from MainActivity");
}
@Override
protected void onRestart() {
super.onRestart();
Log.d(LOG_TAG, "calling onRestart from MainActivity");
}
public void toNextActivity(){
Log.d(LOG_TAG, "calling Next Activity");
Intent intent = new Intent(this, NextActivity.class);
startActivity(intent);
} }
和
public class NextActivity extends AppCompatActivity {private final String LOG_TAG = NextActivity.class.getSimpleName();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_next);
Log.d(LOG_TAG, "calling onCreate from Next Activity");
}
@Override
protected void onStart() {
super.onStart();
Log.d(LOG_TAG, "calling onStart from Next Activity");
}
@Override
protected void onResume() {
super.onResume();
Log.d(LOG_TAG, "calling onResume from Next Activity");
}
@Override
protected void onPause() {
super.onPause();
Log.d(LOG_TAG, "calling onPause from Next Activity");
}
@Override
protected void onStop() {
super.onStop();
Log.d(LOG_TAG, "calling onStop from Next Activity");
}
@Override
protected void onDestroy() {
super.onDestroy();
Log.d(LOG_TAG, "calling onDestroy from Next Activity");
}
@Override
protected void onRestart() {
super.onRestart();
Log.d(LOG_TAG, "calling onRestart from Next Activity");
} }
在首次创建应用程序
d / MainActivity:从主叫MainActivity的onCreate
d / MainActivity:从主叫MainActivity调用onStart
d / MainActivity:从主叫MainActivity的onResume
被称为
屏幕休眠时
08:11:03.142 D / MainActivity:从MainActivity调用onPause
08:11:03.192 D / MainActivity:从MainActivity调用onStop
。并再次当它醒来
08:11:55.922 d / MainActivity:从MainActivity调用onRestart
08:11:55.962 d / MainActivity:从MainActivity调用在onStart
11:55.962 d / MainActivity:08从MainActivity调用的onResume
被称为
情况1:当从主活动
D / MainActivity调用下一个活动:调用下一个活动
D / MainActivity:从主活动D /
NextActivity调用onPause:从下一个活动
D / NextActivity调用onCreate:从下一个活动D / NextActivity调用onStart
:从下一活动
D / MainActivity:从MainActivity调用onStop
当使用返回按钮
D / NextActivity从下一个活动返回主活动时:从下一个活动
D / MainActivity调用onPause :从MainActivity
D / MainActivity调用onRestart:从MainActivity D / MainActivity调用onStart
:从MainActivity
D / NextActivity调用onResume :从下一个活动
D / NextActivity调用onStop:从下一个活动调用onDestroy
情况2:当“活动”被部分遮盖(按“概览”按钮时)或当应用程序进入后台并且另一个应用程序完全遮盖它时
D / MainActivity:从MainActivity调用onPause
D / MainActivity:从MainActivity调用onStop
且应用返回前景准备接受用户输入,
d / MainActivity:从主叫MainActivity onRestart
d / MainActivity:从主叫MainActivity调用onStart
d / MainActivity:从主叫MainActivity的onResume
被称为
情况3:当一个活动被调用以实现隐式意图并且用户做出选择时。例如,当按下共享按钮时,用户必须从显示的应用程序列表中选择一个应用程序
D / MainActivity:从MainActivity调用onPause
活动可见,但现在不活动。当选择完成和应用处于活动状态
d / MainActivity:从MainActivity调用的onResume
被称为
案例4:
当应用程序在中被杀死时background(to free resources for another foreground app), onPause(用于蜂窝前设备)或onStop(用于蜂窝设备)将是终止该应用程序之前的最后一次调用。
每次运行应用程序时,将最多一次调用onCreate和onDestroy。但是在生命周期中可能会多次调用onPause,onStop,onRestart,onStart,onResume。
以上是 Android活动生命周期介绍 的全部内容, 来源链接: utcz.com/z/321377.html