启动模式;https://www.cnblogs.com/zhengtu2015/p/5053831.html

1 普及下知识

Activity启动方式有四种,分别是:
standard
singleTop
singleTask
singleInstance

设置Activity的启动模式,只需要在AndroidManifest.xml里对应的标签设置android:launchMode属性

standard 默认模式,可以不用写配置

其余三种模式,可以网上搜索,一大堆介绍。

2 遇到的问题

项目中有个登录账号的界面,登录完成后,需要finish掉该activity。问题是,该activity未设置启动模式,在主界面打开了该界面,然后点击home键,之后再进入其他应用中打开该activity,进行了登录操作后,登录成功后,关闭了当前输入账号的界面,但是却又显示了空白的登录界面。。。

对于这些操作,只能设置为singleInstance启动模式,但是问题又来了:打开该界面时Intent传过来一些值,在登录完成关闭界面时,需要根据这些值来确定是否需要打开另一个界面,使用了singleInstance模式,第二次打开的该界面的值就获取不到,getIntent().getExtras()始终是第一次的值。

3 解决方法

启动模式为singleInstance,第二次打开界面时,会走onNewIntent方法,代码如下

protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
Log.d(TAG, “onNewIntent”);
setIntent(intent);
}

通过上面方法,可以更新Intent ,就可以拿到第二次打开该界面传过来的Intent内的值。

更多相关文章

  1. Android(安卓)2012年9月19日_001
  2. Android(安卓)Jetpack-ViewModel
  3. Android(安卓)SDK无法更新怎么办
  4. android activity 四大启动模式及使用场景
  5. Android中遇到的简单工厂模式的几种实现
  6. Android在MTP模式下,只显示指定文件夹
  7. Android(安卓)Activity界面切换添加动画特效
  8. Android调用系统短信发送界面并预设接收号码、短信内容
  9. Android(安卓)Activity界面切换添加动画特效

随机推荐

  1. Android(安卓)核心分析(13) -----Android
  2. Android实现书籍翻页效果--扩展版
  3. android环境搭建步骤
  4. android按键焦点事件分析(应用开发篇)
  5. Android程序工程架构
  6. [PHP]通过 PHP for Android(安卓)利用PHP
  7. adb通过TCP/IP来调试Android设备
  8. Android开发实例详解之IMF(Android(安卓)S
  9. 了解Android
  10. android标题栏的选择与使用,AppCompatActi