最近做项目apk升级使用startActivityForResult返回更新数据,发现跳转界面没finish就返回,自习查看log发现Activity is launching as a new task, so cancelling activity result提示,后来网上查找资料发现是android:launchMode="singleTask"设置引起,然而这里不需要singleTask,去掉该属性即可与以下问题类似
http://www.cnblogs.com/shelman/p/5123577.html
近来,在使用startactivityforresult是加上了flags:intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 但是一启动Activity系统就回调了onActivityResult(int requestCode, int resultCode, Intent data) ,系统ActivityManager里有一段打印:W/ActivityManager( 4877): Activity is launching as a new task, so cancelling activity result. 查阅了相关的资料,有如下的解释:
requestCode值>=0,不然,startActivityForResult就变成了 startactivity
从SDK我们可以看到如下深奥的解释:http://developer.android.com/guide/topics/manifest/activity-element.html#lmode
The other modes — singleTask and singleInstance — are not appropriate for most applications, since they result in an interaction model that is likely to be unfamiliar to users and is very different from most other applications.
从柯元旦的《Android 内核剖析》的第十章“Ams内部原理“10.1.3中有这样的一段话:请注意:SINGLE_TASK标识以及SINGLE_INSTANCE两个标识必须在r.result==0的条件中,即这两个标识只能用在startActivity()的方法中,而不能使用在startActivityForResult方法中。因为从Task的角度看,Android认为不同Task之间的Activity是不能传递数据的,所以不能使用NEW_TASK标识,但还是要调用forResult方法。
分享到:
相关推荐
开始活动以获得结果 如何启动ActivityForResult的Flutter示例。 入门 要获得Flutter入门方面的帮助,请查看我们的在线。
StartActivityForResult永恒基金会实习项目这是“开始活动结果”的演示
Android之Intent通过startActivityForResult方法启动新Activity
使用StartActivityForResult进行Activity跳转传值的小例子
1、创建一个自己的Activity 2、启动activity-显示启动和隐式启动: 3、隐式启动自己的activity 4、获取隐启动传递过来的data数据 5、显示启动传递数据 ...7、开启activity获取返回值-startActivityForResult:
使用startActivityForResult回传数据
startActivityForResult过时.md
介绍了StartActivityForResult的运用,并总结了一些问题及答案,可供初学者参考,代码无误,放心运行!
资源为http://blog.csdn.net/yiming_8988/article/details/51476499示例
在Activity的四种不同的启动模式下,对于startActivityForResult方法的影响。什么时候可以收到回传数据。
定义了4个Activity,主activity跳转到其他2个时附带String good,第二个在接收到数据后将String +"boy"后返回给主Activity并Toast;第三个在接收到数据后将String +"boy&girl"后返回给主Activity并Toast。第4个采用...
An Rx wrapper for receiving results from startActivityForResult() as an Observable. Download To launch from an Activity : compile 'com.natewickstrom.rxactivityresult:rxactivityresult:0.1.0-rc3' To ...
这里实现的效果是,点击a Activity后,屏幕会跳转到手机的通讯录,任意选择点击一个通讯录中的联系人,则从通讯录Activity跳回到a Activity并在a Activity上显示你刚才选择通讯录联系人的名字。
关于startActivity被大家忽略的 Fragment中的startActivityForResult方法
startActivityForResult用于两个activity之间的数据传递,Activity1传值给Activity2,Activity2再返回值给Activity1。 第一步:Activity1中:startActivityForResult(Intent intent, Int requestCode) Intent ...
涉及:activity跳转、intent使用、startActivityForResult/onActivityResult,着重讲解通过来Application Context实现共享数据
startActivityForResult
Receive the activity result directly after the startActivityForResult with NoActivityResult.zip,使用inlineActivityResult在StartActivityForresult之后直接接收活动结果
Activity返回参数和传值区别:传参调用startActivity(intent)执行跳转,返回参数用startActivityForResult(intent, 1)方法,还需从写onActivityResult()方法,它是负责初始化回传参数的方法。