当前位置:天才代写 > tutorial > 安卓教程 > Android基础:startActivityForResult 和 onActivityResult 问题

Android基础:startActivityForResult 和 onActivityResult 问题

2021-02-14 17:37 星期日 所属: 安卓教程 浏览:485

新项目中采用弹出来Acitivity来得到客户键入 因此 采用 onActivityResult()方式接纳客户键入

怪异难题 startActivityForResult() 后立即启用 onActivityResult()
    开发者都了解,能够根据应用 startActivityForResult() 和 onActivityResult() 方式来传送或接受主要参数。
殊不知在新项目中,还没有直到被启用的 Activity 回到,onActivityResult() 就强制执行了。
找了好长时间,总算根据传闻获知,这与 Activity 的载入方式(launchMode)相关,该特性能够在 AndroidManifest.xml 中设定.

<activity 
 android:name="SaveFileActivity"
 android:launchMode="singleTask"
 android:theme="@style/savefile"/>

 

原来将其设成 singleInstance,经检测,全部必须传送或接受的 Activity 不允许设定该特性,或只有设为标准模式,不然系统软件将在 startActivityForResult() 后立即启用 onActivityResult()。  将上边XML中的singleTask除掉就可以了

启用startActivityForResult后,onActivityResult无响应的难题
2个activity传递数据和回到数据信息时,要求方的onActivityResult自始至终无响应,根据debug开发者模式也没见启用该方式。查询了各种各样配备和编程代码,均未发觉有不正确之处。后边找了许多材料,终于见到一个盆友说成启用startActivityForResult的主要参数难题,即启用时那样:
startActivityForResult(intent, 0);
是第二个主要参数的难题,该主要参数务必超过0才可以在返回值,并激话onActivityResult方式。
我最初是用的一个activity默认设置的变量定义:RESULT_OK,追踪了编码后发觉,该变量定义的数值-1,自然无法激话 onActivityResult方式了,接着随意改动为一个超过0的整数金额,程序流程即通跑取得成功。
startActivityForResult(intent, 1); //那样就可以了

 

    关键字:

天才代写-代写联系方式