重新创建 activity 还是直接从任务中获取?
Recreate activity or just take it from task?
这个问题有点格式错误。对不起。
我想说的是,当您单击软件后退按钮时(actionBar 'up' 按钮 - 由 android 创建,当您在清单中建立父级 Activity 时)该按钮重新创建了一个 activity,它被认为是 "father"(如果我没记错的话)。
但我可以用这样的东西覆盖它:
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
switch (item.getItemId()) {
case android.R.id.home:
onBackPressed();
return true;
}
return super.onOptionsItemSelected(item);
}
如果我理解正确的话 activity 就不会重新创建。顶部的 Activity 刚刚完成()ed,我们看到 activity 在它下面保存在任务中。对吗?
考虑到我没有传回任何数据,我应该使用什么或什么更好:默认或覆盖行为?如果我不重新创建 activity 并覆盖改变行为的方法,我 运行 会有什么风险?任务中的 activity 会丢失吗? (如果我现在说的话,请原谅 :D )
我会建议使用这个
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
onBackPressed();
return true;
}
return super.onOptionsItemSelected(item);
}
而不是这个,
@Override
public boolean onOptionsItemSelected(MenuItem item) {
return super.onOptionsItemSelected(item);
}
原因:
当您应用第二种方法时,FirstActivity
将再次启动,这意味着 onCreate()
将被调用,无论是第一种方法 onRestart()
是否会像我在评论中建议的那样被调用。
Note: If you want to reload FirstActivty
on android.R.id.home
press
event, use second approch.
这个问题有点格式错误。对不起。 我想说的是,当您单击软件后退按钮时(actionBar 'up' 按钮 - 由 android 创建,当您在清单中建立父级 Activity 时)该按钮重新创建了一个 activity,它被认为是 "father"(如果我没记错的话)。
但我可以用这样的东西覆盖它:
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
switch (item.getItemId()) {
case android.R.id.home:
onBackPressed();
return true;
}
return super.onOptionsItemSelected(item);
}
如果我理解正确的话 activity 就不会重新创建。顶部的 Activity 刚刚完成()ed,我们看到 activity 在它下面保存在任务中。对吗?
考虑到我没有传回任何数据,我应该使用什么或什么更好:默认或覆盖行为?如果我不重新创建 activity 并覆盖改变行为的方法,我 运行 会有什么风险?任务中的 activity 会丢失吗? (如果我现在说的话,请原谅 :D )
我会建议使用这个
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
onBackPressed();
return true;
}
return super.onOptionsItemSelected(item);
}
而不是这个,
@Override
public boolean onOptionsItemSelected(MenuItem item) {
return super.onOptionsItemSelected(item);
}
原因:
当您应用第二种方法时,FirstActivity
将再次启动,这意味着 onCreate()
将被调用,无论是第一种方法 onRestart()
是否会像我在评论中建议的那样被调用。
Note: If you want to reload
FirstActivty
onandroid.R.id.home
press event, use second approch.