有关startActivityForResult()和onActivityResult()之疑惑?
http://blog.csdn.net/IT___LaDeng/article/details/6822813
不过碰见了一个比较蛋疼的问题: 现在要求我的程序中activity A 接收 activity B的一些数据,A和B不在同一个程序中
代码
public void onClick(View v) {
switch (v.getId()) {
case R.id.button:
Intent intent = new Intent(TestandroidActivity.this,
androidActivity.class);
startActivityForResult(intent, 1);
break;
default:
break;
}
}@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
System.out.println("onActivityResult");
System.out.println("requestCode+++++ :" +requestCode);
System.out.println("resultCode+++++ :" +resultCode );
switch (requestCode) {
case 1:
if (resultCode == 2) {
String i = data.getStringExtra("name");
textView.setText(i);
DataFile.data = i;
}
break;
default:
break;
}
}
并且将activity的启动模式设为 android:launchMode="singleInstance" (必须设为这样)
于是问题就来了···
04-11 08:03:24.090: W/ActivityManager(74): Activity is launching as a new task, so cancelling activity result.
04-11 08:03:24.109: W/WindowManager(74): Failure taking screenshot for (120x180) to layer 21010
04-11 08:03:24.140: I/System.out(906): onActivityResult
04-11 08:03:24.140: I/System.out(906): requestCode :1
04-11 08:03:24.149: I/System.out(906): resultCode :0
在startActivityForResult()执行后,onActivityResult()立马执行(跟B再无关系),并且将这次获取result的动作给取消了,resultCode = Activity.RESULT_CANCELED。 我一直以为使用startActivityForResult()的限制是只和activityB的启动模式有关的, 不知各位大神有没有解决办法呢?
相关推荐
Android中onActivityResult的用法
共享这份Android中onActivityResult的用法给大家,希望对大家有帮助。
Android startActivityForResult和onActivityResult的基本用法
方法的作用: startActivityForResult():该方法的工作原理与startActivity非常相似,但有一个重大的区别。除了传递用于确定启动哪个Activity的显式或隐士Intent外,还需要传入一个请求码,请求码将用于返回结果的子Activity的唯一标识。 onActivityResult():当子Activity关闭时,onActivityResult()将在父Activity中触发。可以通过重写方法来处理子Activity的返回结果。 下面在代码中演示一下这两个方法是如何搭配
简单demo 说明onActivityResult()的执行时间问题
当我们调用startActivityForResult()方法来跳转页面的时候需要重写onActivityResult方法,不然就和startActivity没什么两样,这个demo就是简单说明调用时间。流程如下:MainActivity::onCreate MainActivity::onStart MainActivity::onResume Activity1::onCreate MainActivity::onStop Activity1::setResult MainActivity::onActivityResult MainActivity::onRestart MainActivity::onStart MainActivity::onResume
Android中Fragment多层嵌套时onActivityResult无法正确回调问题的解决方法
主要介绍了Android中Fragment多层嵌套时onActivityResult无法正确回调问题的解决方法,需要的朋友可以参考下
Android-基于RxPermissions框架思想在使用startActivityForResult可以不重写onActivityResult回调
基于RxPermissions框架思想,在使用startActivityForResult可以不重写onActivityResult回调


