- 浏览: 1066083 次
- 性别:
- 来自: 南昌
文章分类
- 全部博客 (276)
- 生活 (1)
- 代码之美 (22)
- Media (7)
- Android Widget (3)
- Android Intent (1)
- Android Activity (4)
- UI event handle--UI事件处理机制 (2)
- Java基础知识 (12)
- android Databases (5)
- Android 系统知识 (70)
- 平常遇到的问题与解决方法 (38)
- Android TextView/EditView (2)
- Thinking Java (1)
- android webkit (6)
- JSON (1)
- XML (4)
- HTTP (1)
- Google Weather API (1)
- android 2.3 NFC (10)
- android app (20)
- android framework (7)
- C++ (2)
- android System (5)
- Pthread (1)
- Wifi (8)
- Unix/Linux C (8)
- Android 4.0 (1)
- Mail (1)
- Smack 源码学习 (4)
- iOS (4)
- Android (1)
- git (1)
- Gallery3d (2)
- React-Natice (1)
最新评论
-
dd18349182956:
你是用的smack哪个版本?我用的smack4.1.3和sma ...
关于socket长连接的心跳包 -
xukaiyin:
全英文
getApplicationContext()与this,getBaseContext() -
裂风矢:
...
<category android:name="android.intent.category.DEFAULT" /> 惹的祸 -
xanthodont:
mark一下
XMPP——Smack -
Evilover3:
mark一下,学习了
XMPP——Smack
转自:http://www.byywee.com/page/M0/S776/776928.html
人员都知道,可以经由过程应用 startActivityForResult() 和 onActivityResult() 办法来传递或接管参数。
然而在“轻听”项目中,还没比及被调用的 Activity 返回,onActivityResult() 就被履行了。
找了好久,终于经由过程小道消息得知,这与 Activity 的加载模式(launchMode)有关,该属性可以在 AndroidManifest.xml 中设置。
本来将其设为 singleInstance,经测试,所有须要传递或接管的 Activity 不容许设置该属性,或只能设为标准模式,不然体系将在 startActivityForResult() 后直接调用 onActivityResult()。
调用startActivityForResult后,onActivityResult无响应的题目
两个activity传递数据和返回数据时,恳求方的onActivityResult始终无响应,经由过程debug调试模式也没见调用该办法。查看了各类设备和法度代码,均未发明有错误之处。后面找了很多材料,总算看到一个伴侣说是调用startActivityForResult的参数题目,即调用时如许:
startActivityForResult(intent, 0);
是第二个参数的题目,该参数必须大于0才干在返回值,并激活onActivityResult办法。
我最开端是用的一个activity默认的常量:RESULT_OK,跟踪了代码后发明,该常量的值为-1,当然没法激活 onActivityResult办法了,随后随便批改为一个大于0的整数,法度即通跑成功。
startActivityForResult(intent, 1); //如许就行了
1.startActivityForResult(Intent intent, Int requestCode);
2.setResut(int resultCode, Intent intent);
3.onActivityResult(int requestCode, int resultCode, Intent intent);
重视事项:
1.比来应用startActivityForResult,失足,跟踪后发明activity并没有被启动,而是直接履行 onActivityResult。后查看日记发明
“05-19 02:11:19.822: WARN/ActivityManager(67): Activity is launching as a new task, so cancelling activity result.”
本来是我把要启动的activity的launchmode设置成singleTask了。
把目标activity的launchmode去掉,正确。
总结:目标activity的launchmode不克不及设置成singleTask。
2.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方法。
人员都知道,可以经由过程应用 startActivityForResult() 和 onActivityResult() 办法来传递或接管参数。
然而在“轻听”项目中,还没比及被调用的 Activity 返回,onActivityResult() 就被履行了。
找了好久,终于经由过程小道消息得知,这与 Activity 的加载模式(launchMode)有关,该属性可以在 AndroidManifest.xml 中设置。
本来将其设为 singleInstance,经测试,所有须要传递或接管的 Activity 不容许设置该属性,或只能设为标准模式,不然体系将在 startActivityForResult() 后直接调用 onActivityResult()。
调用startActivityForResult后,onActivityResult无响应的题目
两个activity传递数据和返回数据时,恳求方的onActivityResult始终无响应,经由过程debug调试模式也没见调用该办法。查看了各类设备和法度代码,均未发明有错误之处。后面找了很多材料,总算看到一个伴侣说是调用startActivityForResult的参数题目,即调用时如许:
startActivityForResult(intent, 0);
是第二个参数的题目,该参数必须大于0才干在返回值,并激活onActivityResult办法。
我最开端是用的一个activity默认的常量:RESULT_OK,跟踪了代码后发明,该常量的值为-1,当然没法激活 onActivityResult办法了,随后随便批改为一个大于0的整数,法度即通跑成功。
startActivityForResult(intent, 1); //如许就行了
1.startActivityForResult(Intent intent, Int requestCode);
2.setResut(int resultCode, Intent intent);
3.onActivityResult(int requestCode, int resultCode, Intent intent);
重视事项:
1.比来应用startActivityForResult,失足,跟踪后发明activity并没有被启动,而是直接履行 onActivityResult。后查看日记发明
“05-19 02:11:19.822: WARN/ActivityManager(67): Activity is launching as a new task, so cancelling activity result.”
本来是我把要启动的activity的launchmode设置成singleTask了。
把目标activity的launchmode去掉,正确。
总结:目标activity的launchmode不克不及设置成singleTask。
2.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方法。
发表评论
-
Android Webview加载www.youtube.com的问题
2019-04-25 10:36 990Android Webview加载www.youtube.co ... -
EditText键盘删除字符的原理
2018-10-29 19:21 1246转https://blog.csdn.net/tankai19 ... -
Background execution not allowed
2018-10-22 19:02 358111-05 10:08:18.058 673 736 ... -
failed to set system property
2018-10-17 09:21 4366在App的mk文件设置了LOCAL_CERTIFICATE : ... -
CtsDeqpTestCases fail
2018-07-27 09:44 3016Suite / Plan:VTS / cts-on-gsi ... -
在DocumentUI中的Recent(最近)列表无法显示图片的缩略图
2018-06-12 18:23 938今天客户提了一个bug说在短信添加附件,界面无法显示缩略图。接 ... -
在任务栏中清除掉播放器的进程,状态栏仍有音乐播放器状态,且音乐仍在后台播放
2018-06-05 11:28 1635在任务栏中清除掉播放器的进程,状态栏仍有音乐播放器状态,且音乐 ... -
junit.framework.AssertionFailedError: Failed to get achievable frame rates for O
2018-05-25 15:41 2343之前对于CTS测试的失败case接触不多,组长突然转了这样一个 ... -
Android 模拟各种事件的方法
2018-05-17 16:30 1523有时候没有对应的硬件设备,那我们就得通过某种方式来模拟。比如模 ... -
Android Email 新建邮件时一直显示“waiting for sync”
2018-02-28 15:48 990当用户在Setting中清除了Email的data,再返回到E ... -
javax.net.ssl.SSLHandshakeException: Unacceptable certificate: CN=GeoTrust SSL C
2018-01-30 16:48 3772最近从Android N升级到Android O,发现163的 ... -
Email中附件名称中包含中文字符显示乱码
2017-11-28 17:09 1610Email中附件名称中包含中文字符显示乱码是因为附件虽包含了中 ... -
不能再通过createPackageContext来访问另外一个应用的资源(Sharepreference)
2017-11-14 17:22 1462以前我们可以通过createPackageContext来访问 ... -
当Email未设置账户时,通过ACTION_SENDTO启动会报ActivityNotFoundException
2017-09-27 18:15 535当Email未设置账户时,通过ACTION_SENDTO启动会 ... -
java.lang.SecurityException: Permission Denial: reading...requires android.permi
2016-05-12 11:12 2369一直在忙于Gallery,最近遇到了这样的bug,在Setti ... -
android.database.sqlite.SQLiteReadOnlyDatabaseException: attempt to write a read
2015-11-27 14:50 2956android.database.sqlite.SQLiteR ... -
AsyncTask
2015-08-21 17:43 418转自http://blog.csdn.net/hitlion2 ... -
解决IllegalStateException: Can not perform this action after onSaveInstanceState
2015-08-07 18:07 1091转自http://www.cnblogs.com/zgz345 ... -
Android setTag方法的key问题
2015-08-03 19:22 1073转自http://www.cnblogs.com/whitew ... -
ActivityGroup对子Activity的管理
2013-06-27 17:41 2105转自http://eyeandroid.diandian.co ...
相关推荐
- **界面导航**:例如,登录流程通常使用singleTask或singleInstance,确保用户不论何时都能直接回到登录界面,而不会被中间的Activity干扰。 - **数据回调**:在需要回传数据的结果Activity,如登录成功后跳转到...
它有四种模式:标准模式(standard)、单实例模式(singleInstance)、单任务模式(singleTask)和单栈顶模式(singleTop)。标准模式是最常见的,每个启动请求都会创建一个新的Activity实例。单实例模式下,只有一...
4. **SingleInstance**:与SingleTask类似,但更为严格,它不仅在单独的任务栈中运行,而且该任务栈中只能有一个`Activity`实例。这意味着,任何通过`startActivityForResult`启动的`Activity`都将被放入其他任务栈...
- 使用`startActivityForResult`时,确保目标Activity的启动模式适合你的需求,如standard、singleTop、singleTask或singleInstance。 了解这些知识点后,开发者就能有效地在Android应用中实现Activity间的交互和...
- FLAG_ACTIVITY_NEW_TASK:创建新的任务栈来启动Activity,常与SingleTask或SingleInstance模式配合使用。 - FLAG_ACTIVITY_CLEAR_TOP:如果目标Activity已经在栈中,那么它上方的所有Activity都将被移除,目标...
Android提供了四种基本的启动模式:标准模式(Standard)、单实例模式(SingleTop)、单任务模式(SingleTask)和单栈顶模式(SingleInstance)。标准模式是最常见的,每次启动都会创建新的Activity实例。而其他模式...
4. singleInstance:与singleTask类似,但它是唯一一个在其任务栈中的Activity,即不会有任何其他Activity与其位于同一个栈中。 二、Intent的使用 Intent是Android系统中用于传递信息的载体,它用于启动Activity或...
Activity的启动模式有四种:standard、singleTop、singleTask和singleInstance。每种模式在栈管理上有所不同,影响着新Activity如何被创建和在任务栈中的位置。源码可能包含不同启动模式的应用实例,帮助理解它们的...
在Android应用开发中,Activity是用户界面的基本组件...在实际开发中,我们还需要关注Activity的生命周期、启动模式(SingleTop, SingleTask, SingleInstance等)以及其他相关优化策略,以确保应用运行的稳定性和效率。
其他模式如"singleTop"(栈顶复用)、"singleTask"(单任务)和"singleInstance"(单一实例)则用于控制Activity的生命周期和任务栈管理,以实现特定的跳转需求。 5. **AndroidManifest.xml配置** 在...
Activity的启动模式(singleTop, singleTask, singleInstance等)和Fragment的事务管理(add, replace, remove等)都是围绕back stack设计的。back stack维护了Activity或Fragment的历史记录,使得用户可以通过按...
在Android中,Activity有四种启动模式:standard、singleTop、singleTask和singleInstance。每种模式都决定了新Activity的创建方式以及它们在任务栈中的位置,这直接影响到跳转和数据传递的过程。 1. standard模式...
2. Activity 的 4 种启动模式是standard、singleTop、singleTask 和 singleInstance。 3. Android 中 Intent 寻找目标组件的方式有两种:隐式 Intent 和显式 Intent。 4. Activity 生命周期中“回到前台,再次可见时...
开发者可以通过设置不同的启动模式(standard、singleTop、singleTask、singleInstance)来改变Activity的启动行为,影响回退栈的行为。 最后,`ActivityDemo`可能还会涵盖主题(Theme)、权限管理、布局设计、动画...
Activity的启动模式(Standard、SingleTop、SingleTask、SingleInstance)会影响数据的传递。例如,如果使用SingleTask模式,当启动的Activity已经在栈顶,新的Intent不会创建新的Activity实例,而是调用...
Activity的启动模式有四种:standard、singleTop、singleTask和singleInstance,它们决定了新启动的Activity如何与已存在的Activity实例交互。例如,如果你想确保每次启动Activity都是新的实例,可以设置为`...
7. **启动模式**: Activity启动模式(如SingleTop, SingleTask, SingleInstance)会影响Activity实例的数量和行为。例如,SingleTop模式下,如果栈顶已经存在该Activity的实例,系统会重用而不是创建新的。 8. **...
8. **启动模式**:在AndroidManifest.xml中,可以为Activity指定启动模式,如singleTop、singleTask、singleInstance等,这会影响Activity的实例数量和栈的行为。 了解并熟练运用上述知识点,你就能有效地进行...
最后,当Activity的启动模式设置为singleTask或singleInstance时,onActivityResult方法可能无法正常工作。这是因为这两种模式会保持Activity的栈状态,除非额外设置了android:clearTaskOnLaunch="true",这样可以...
本文将详细阐述Android启动Activity的四种方式:standard、singleTop、singleTask和singleInstance,并探讨打开其他应用Activity时可能遇到的问题。 1. **standard**:这是最常见且默认的Activity启动模式。当启动...