代码之家  ›  专栏  ›  技术社区  ›  Jack

当启动模式为singleTask时,强制活动使用startActivity调用onCreate()

  •  1
  • Jack  · 技术社区  · 6 年前

    android:launchMode="singleTask"

    当我打电话的时候 startActivity()

    活动A启动活动B

    活动A带有旧数据

    我用什么标志来强制它干净地启动和调用 onCreate()

    android:launchMode=“单任务” 维持 常规应用程序流,无法交换到 android:launchMode="singleTop"

    编辑(1):

    launchIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
    

    随着

    它解决了我要问的问题,但却造成了最严重的问题

    现在,当我完成活动A(由活动A启动的由活动B启动的应用程序)时,我发现自己已经到了我使用的最后一个应用程序,它应该在那里登陆到活动B。

    1 回复  |  直到 6 年前
        1
  •  4
  •   aminography    6 年前

    尝试使用 onNewIntent 要知道 Activity onCreate 当启动模式为 singleTask

    public class ActivityA extends AppCompatActivity {
    
        @Override
        public void onCreate(@Nullable Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            init();
        }
    
        @Override
        protected void onNewIntent(Intent intent) {
            super.onNewIntent(intent);
            init();
        }
    
        private void init(){
            // do initialization
        }
    
    }