插一个注意点.在用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. 安装S_S相关报错的troubleshooting

    在安装S_S server时,在Debian上会出现类似如下的报错: File , in <module> sys.exit(main()) File , in main config = ...

  2. ffmpeg超详细综合教程——摄像头直播

    本文的示例将实现:读取PC摄像头视频数据并以RTMP协议发送为直播流.示例包含了1.ffmpeg的libavdevice的使用2.视频解码.编码.推流的基本流程具有较强的综合性.要使用libavdev ...

  3. Quartz.net 2.x 学习笔记01

    Quartz.net 2.0 2012年4月9日发布了Released版本,到目前(2014-12-08)为止是2.3版 Quartz.net 项目地址:http://www.quartz-sched ...

  4. 【转】使用Jmeter测试Webservice简单示例

    1.webservice 先简单开发webservice,参考文档 http://www.cnblogs.com/xwdreamer/archive/2011/12/07/2296914.html w ...

  5. Linux的启动级别

    一.启动级别 1.查看linux 系统默认启动级别cat /etc/inittab id:3:initdefault: ##可以看出默认为三 2.查看某一服务在各个启动级别上是否启动[root@loc ...

  6. 张瀚荣:如何用UE4制作3D动作游戏

    转自:http://www.gamelook.com.cn/2015/06/218267 GameLook报道/ 6月5日,2015年第三期GameLook开放日‧虚幻引擎专场活动在上海正式举行,此次 ...

  7. C#之Application.DoEvents()

    Application.DoEvents()的最大作用就是时时响应, 可以看做是个线程的一个封装 private void button1_Click(object sender, EventArgs ...

  8. Docker - 使用 swarm 部署 services

    前言 经过之前一段时间学习与思考,我们已经大概明确了一些感念: Docker image/container,  service and node 简单来说,swarm允许我们以节点(node)的方式 ...

  9. 分布式队列 Celery

    详情参见: 分布式队列神器 Celery 用户指南(User Guide) 1) Celery-4.1 用户指南: Application(应用) 2) Celery-4.1 用户指南: Task(任 ...

  10. mysql 存储过程 编写注意事项

    mysql的存储过程有很多需要注意的地方,一不留神就会出错,可能调试了老半天才发现原因 1  没有return 语句 可以采用leave代替,返回直接使用select语句 比如select 1: 2. ...