mus*_*oom 0 android android-lifecycle
我已经阅读了有关活动生命周期的Android文档。但是,我对应用程序中不同活动的行为感到好奇。
从一些测试,我已经通过意图暂停活动的已完成,过渡从活动A到活动B在同一程序中通过onPause(),并创建活动B通过onCreate()。
奇怪的是,当活动B过渡回活动A时。
如果按下了硬件后退键,onPause()则对活动B onResume()触发,对活动A触发。这就是我所期望的。
但是,如果按下上的后退按钮ActionBar,onDestroy()则为活动A触发,然后按onCreate()和onResume()。
为什么会这样呢?
上的“后退按钮” ActionBar称为“向上按钮”。这是“向上”按钮的预期行为,如果您看一下执行“向上”的代码的实现,您会看到重新创建了活动A。
Intent parentActivityIntent = new Intent(getApplicationContext(), MainActivity.class);
parentActivityIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(parentActivityIntent);
finish();
Run Code Online (Sandbox Code Playgroud)
您可以定义“向上”按钮应该执行的操作,但是,我建议坚持默认行为。
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
// Your Code Here.
break;
}
}
Run Code Online (Sandbox Code Playgroud)
为什么?
该向上按钮(在此相反的后退按钮)应导航应用程序中的一个层次水平高,始终。后退按钮应该返回,即使它将退出当前应用程序。
您不能只在current上调用finish Activity,因为父级Activity可能已经被垃圾回收并且不再存在。
我强烈建议您阅读官方的Android设计指南,尤其是有关Up vs Back的部分。
| 归档时间: |
|
| 查看次数: |
132 次 |
| 最近记录: |