插一个注意点.在用ArrayAdapter的时候数据那里的类型必须是List<String> 不能是ArrayList<String>

1.在A.Activity中调用startActivityForResult()启动B.Activity后,再B.Activity中调用setResult() 方法后,A.Activity中的onResultActivity将会执行。

但遇到下列问题就不会执行了:

  startActivityForResult()用法参照:http://www.cnblogs.com/liangstudyhome/p/3708296.html

  •   Activity的启动方式是singleTask 或者是singleMode
  •   在传递的Intent中requescode小于0
  • *** 就是在调startActivityForResult()的Activity在一个GroupActivity中( 其实是执行了GroupActivity的onResultActivity方法)

2.对上述问题的解决办法:

  •   将Activity的启动方式改成stander

1. tab activity(想获取onResultActivity值的子Activity)中使用

  

 getParent().startActivityForResult(intent,REQUEST);  

2. 当子activity.finish 返回时,在ActivityGroup实现onActivityResult,内容类似于:

  

     @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// 向下传递
YourActivity currentActivity = (YourActivity) getLocalActivityManager()
.getCurrentActivity();
currentActivity.onChildActivityResult(requestCode, resultCode, data);
}

onChildActivityResult是一个你自己实现的方法,用来处理返回结果的。

具体的一个例子:

  

 @SuppressWarnings("deprecation")
private void tabChange(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
containerBordy.removeAllViews();
Intent intent = null;
switch (buttonView.getId()) {
case R.id.tab_weather: intent = new Intent(MainActivityTab.this,
WeatherActivityBaiDu.class);
break;
case R.id.tab_produce: intent = new Intent(MainActivityTab.this,
ProductWarningActivity.class);
break;
case R.id.tab_im:
intent = new Intent(MainActivityTab.this,
ChatBriefActivity.class);
break; case R.id.tab_diaster:
intent = new Intent(MainActivityTab.this,
RelevantForecastActivity.class);
break;
case R.id.tab_setting:
intent = new Intent(MainActivityTab.this, SettingActivity.class);
break;
case R.id.tab_more: break; } intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); Window subActivity = mlam.startActivity("startActivity", intent);
containerBordy.addView(subActivity.getDecorView()); } }

上面的方法是将一个Activity加载到一个GroupActivity中。

要注意的是这的Activity是有一个startActivity的id,所以要将上述的onActivityResult方法变成:

 @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
System.out.println("返回的是这里的onActivityResult");
CommunicationActivity currentActivity = (CommunicationActivity) mlam
.getActivity("startActivity"); // Activity a = mlam.getCurrentActivity()
System.out.println("currentActivity-->>" + currentActivity); // System.out.println("requestCode-->>" + requestCode
// + " resultCode-->>" + resultCode + " data"
// + data.getIntExtra("blockID", 0));
currentActivity.onActivityResultFromMainActivity(requestCode,
resultCode, data);
// currentActivity.YSOS();
}
mlam对应的是LocalActivityManager.
onActivityResultFromMainActivity这是子Activity中自己定义的方法。

android onResultActivity不执行原因总结的更多相关文章

  1. Android 在Android代码中执行命令行

    1.路径最好不要是自己拼写的路径/mnt/shell/emulated/0/wifidog.conf 最好是通过方法获取的路径,不然可能导致命令无效  (挂载点的原因) public static f ...

  2. 安卓执行机制JNI、Dalvik、ART之间的比較 。android L 改动执行机制。

    Android L默认採用ART执行环境.全然兼容64位移动处理器.Google称这将比此前的Dalvik模式性能提高两倍,可是会占用很多其它的内存空间.Android有三种执行模式:JNI.Dalv ...

  3. android AVD启动失败原因之一

    在mac上安装好Android SDK.AVD及相关的组件之后,手动创建了一个安卓模拟器后,通过actions启动,会弹出一个提示窗口,然后就闪退,也没有报错什么的,在网上搜了半天AVD启动失败的问题 ...

  4. Android 6.0 执行时权限处理全然解析

    转载请标明出处: http://blog.csdn.net/lmj623565791/article/details/50709663: 本文出自:[张鸿洋的博客] 一.概述 随着Android 6. ...

  5. Android利用AlarmManager执行定时任务

    Android中的AlarmManager功能很强大,它是一个全局定时器,可以在指定时间或者指定周期启动其他组件(包括Activity.Service.BroadcastReceiver). 使用Al ...

  6. Android 命令行执行工具类

    最近在做android项目的时候,需要执行命令行命令,之前在网上找的不仅杂乱而且错误多,于是自己写了一份. 话不多说,直接上代码 import android.util.Log; import jav ...

  7. 穿越之旅之--android中如何执行java命令

    android的程序基于java开发,当我们接上调试器,执行adb shell,就可以执行linux命令,但是却并不能执行java命令. 那么在android的shell中是否就不能执行java程序了 ...

  8. Android ps命令执行后的各项参数含义

    直接输入ps后可以看到如下信息: # ps ps USER     PID   PPID  VSIZE  RSS     WCHAN    PC         NAME root      1    ...

  9. crond不执行原因分析

    自己写了个脚本,让crond来周期性执行脚本进行备份,但是在crontab -e里面加入了执行脚本之后,发现没有执行,后来分析了一下,crond不执行的原因主要有以下几个方面: 1.crond服务没启 ...

随机推荐

  1. CAN总线概述

    基本概念 CAN 是Controller Area Network 的缩写(以下称为CAN),是ISO国际标准化的串行通信协议.在汽车产业中,出于对安全性.舒适性.方便性.低公害.低成本的要求,各种各 ...

  2. 使用YCSB测试mongodb

    项目里面需要对mongodb的性能进行测试,看了下网上很多做法都是使用YCSB进行测试,因此开始学习使用YCSB. 参考资料: YCSB github地址:https://github.com/bri ...

  3. zufeoj 数值排序(简单题)

    数值排序 时间限制: 1 Sec  内存限制: 128 MB提交: 186  解决: 45[提交][状态][讨论版] 题目描述 输入一串数字,把这串数字中的‘0’都看成空格,那么就得到一行用空格分割的 ...

  4. AngularJS:Http

    ylbtech-AngularJS:Http 1.返回顶部 1. AngularJS XMLHttpRequest $http 是 AngularJS 中的一个核心服务,用于读取远程服务器的数据. 使 ...

  5. PHP定时任务Crontab结合CLI模式详解

    从版本 4.3.0 开始,PHP 提供了一种新类型的 CLI SAPI(Server Application Programming Interface,服务端应用编程端口)支持,名为 CLI,意为 ...

  6. UE4事件相关总结

    转自:http://blog.ch-wind.com/ue4-event-overview/ 事件机制是实现游戏内逻辑的重要部分,在开始进行游戏逻辑的设计和实现之前,对UE4的事件机制进行理解是非常必 ...

  7. Linux内核中常见内存分配函数

    1.      原理说明 Linux内核中采用了一种同时适用于32位和64位系统的内存分页模型,对于32位系统来说,两级页表足够用了,而在x86_64系统中,用到了四级页表,如图2-1所示.四级页表分 ...

  8. PHP框架 Laravel

    PHP框架 CI(CodeIgniter) http://www.codeigniter.com/ http://codeigniter.org.cn/ Laravel PHP Laravel htt ...

  9. ocx控件针对网页刷新和关闭分别进行区分处理

    当ocx加载在网页上时,如果对网页执行F5刷新事件,ocx控件会销毁ocx的窗口类,但是ocx的APP类是不会销毁的. 只有当网页被关闭时,才销毁app类. --------------------- ...

  10. spring注解注入属性