android:launchMode="standard":这种启动模式下,每startActivity()一次,即在内存中创建一个新实例。

android:launchMode="singleTop":如果在栈的顶端有该activity的引用存在,则再一次startActivity()不会onCreate创建新的,而是复用存在的实例,调用onNewIntent()方法。

android:launchMode="singleTask":只要整个栈中有该activity的引用存在,则再一次startActivity()不会onCreate创建新的,而是复用存在的实例,调用onNewIntent()方法。

android:launchMode="singleInstance":第一次创建后,即另开启一个任务栈,并且该新栈只能存在它的一个引用;再一次startActivity()不会onCreate创建新的,而是复用存在的实例,调用onNewIntent()方法。


再来看看startActivityForResult()方法:(亲测)

现在演示:A startActivityForResult()开启B,然后B返回数据;

如果A为standardB为singleTask、singleInstance,返回失败;A调用startActivityForResult()开启B后,会立即调用A的onActivityResult();此时B操作数据没有返回(还没获取)B为singleTop和standard都正常返回数据。如果A为singleTop同上如果A为singleTask同上如果A为singleInstance,则返回数据全失败

综上:如果需要自己的Activity中开启系统照相机,然后返回数据,请自己的activity不要设置为singleInstance;如果非要是singleInstance,那就不能使用onActivityResult方式获取返回数据了;可以在保存照片后,从SD卡中获取图片。

setResult()方法在onPause、onDestory()中执行是无效的。其它生命周期方法中执行有效。


每按一次后退键,都会调用onDestory();


调用this.finish(),会自动调用onDestory();



通知点击,传的intent值,进入目标Activity时,会调用onNewIntent()方法,只要该activity不为singleInstance,intent带的值都能取到。

Intent intent = new Intent(ctx, MainActivity.class);intent.putExtra("time", time);intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);PendingIntent contentIntent = PendingIntent.getActivity(ctx, 0,intent, 0);

目标activity

@Overrideprotected void onNewIntent(Intent intent) {super.onNewIntent(intent);Logger.d(TAG, "MainActivity onNewIntent");String time = intent.getStringExtra("time");Logger.d(TAG, "onNewIntent time: "+time);if(!TextUtils.isEmpty(time)){Logger.d(TAG, "time: "+time);//经营数据mTabHost.setCurrentTab(0);rb_main_data.setChecked(true);//设置已读PushMsgDao dao = new PushMsgDao(this);SystemMessage systemMessage = dao.findMsgByTime(time);dao.setReaded(systemMessage.getId());}else{Logger.d(TAG, "没有时间");}}





更多相关文章

  1. Android例子—设置Activity全屏的三种方法
  2. android : 如何通过provider向外共享数据
  3. Android特有的数据结构分析
  4. android中的提示信息显示方法(toast应用)
  5. adb devices 找不到设备的解决方法
  6. android 按home键返回到桌面后,再按桌面应用图标又重新打开该应用
  7. android获取各种系统路径的方法

随机推荐

  1. 实现能定点移动的seekbar
  2. 关于Android软键盘弹出的问题
  3. 判断Android系统时间是否是24小时制
  4. Android 个人记账程序源码
  5. Android给View画边框
  6. Android下获取手机屏幕大小
  7. Android获取本机Mac地址和IP地址
  8. Android之快捷方式一——通过应用程序创
  9. android 在线预览pdf文件(目前最全)
  10. 布局的学习