有关startActivityForResult()和onActivityResult()之疑惑?

android_baiyuchuan android_baiyuchuan 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
有关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的用法给大家,希望对大家有帮助。

yi_tian_yi

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

weixin_42713739

Android中Fragment多层嵌套时onActivityResult无法正确回调问题的解决方法

主要介绍了Android中Fragment多层嵌套时onActivityResult无法正确回调问题的解决方法,需要的朋友可以参考下

weixin_38501810

Android-基于RxPermissions框架思想在使用startActivityForResult可以不重写onActivityResult回调

基于RxPermissions框架思想,在使用startActivityForResult可以不重写onActivityResult回调

weixin_39840387
评论 4
收藏 已收藏
分享
返回顶部
android_baiyuchuan
Android 80,489 成员 91,375 内容