android - 重新创建 Activity 或只是从任务中获取它?

标签 android android-activity task back-button

这个问题有点格式错误。对不起。 我想说的是,当您单击软件后退按钮(actionBar“向上”按钮 - 由 android 创建,当您在 list 中建立 parentActivity 时)该按钮会重新创建一个被视为“父亲”的 Activity (如果我没错)。

但我可以用这样的东西覆盖它:

    @Override
public boolean onOptionsItemSelected(MenuItem item)
{
    switch (item.getItemId()) {

        case android.R.id.home:
            onBackPressed();
            return true;
    }


    return super.onOptionsItemSelected(item);
}

这样,如果我理解正确,就不会重新创建 Activity 。顶部的 Activity 刚刚结束(),我们看到它下面的 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.homepress event, use second approch.

关于android - 重新创建 Activity 或只是从任务中获取它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33957723/

相关文章:

android - 如何解决 flutter 中的 build.gradle 错误。如何解决此错误 "A problem occurred evaluating project ' :app'. > Malformed\uxxxx 编码。”

Android singleTask 还是 singleInstance 启动模式?

android - Android Studio中的空白 Activity 和基本 Activity 有什么区别?

c# - 线程比任务运行得更快吗?

android - 这个语音识别错误在我的 flutter 应用程序中意味着什么?

android - 如何要求特定构建类型的环境变量?

android - MTK 是否共享他们的 AOSP 源代码?我怎么才能得到它?

java - 您可以启动一个 Activity 作为其自身的实例吗?

java - 在Spring中实例化一个新线程来定期执行任务

后台的 Android 异步任务进度