Activity SingleInstance启动模式

关于SingleInstance Activity的注意事项:

1.当Activity被多次通过Intent方式进入后,不会重复onCreate而是执行onNewIntent方法;

https://blog.csdn.net/su20145104009/article/details/50662731

2.两个坑:https://blog.csdn.net/Mr_JingFu/article/details/79077613

  • 启动顺序为:ActivityA->ActivityB(SingleInstance )->ActivityC ,点击Back退出顺序:C-》A-》B !!!
  • 启动顺序为:ActivityA->ActivityB(SingleInstance ),点击HOME键再切回应用,展示A而不是B。
  • 解决方式是一样的:

在ActivityB定义一个全局变量,public static boolean returnActivityB;在onCreate方法将returnActivityB=true;

然后在ActivityA界面onStart方法里判断returnActivityB是否为true,是的话就跳转到ActivityB,同时将returnActivityB=false;这样就能解决跳转的问题了。

3.如何合理的使用Activity:

https://www.cnblogs.com/dreamy890322/articles/6054395.html

如果不是应用退出,不要finish掉Instance,采用隐藏的方式:

@Override
public boolean onKeyDown(int keycode, KeyEvent event) {
    L.e("Key_Stuta = " + event.getAction());
    if (keycode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
        // 右键处理
        moveTaskToBack(true);
    }
    return true;
}

猜你喜欢

转载自www.cnblogs.com/jooy/p/9494165.html
今日推荐