如何强制主要Acivity在Android中等待子活动?

我称之为主要活动的子活动.这个子活动应该从用户那里拿几个数字(我使用编辑文本控件来实现这一点),将它们保存到另一个类中的静态变量并终止.我希望主要活动等待子活动,但两者都只是同时运行.即使这样做也无济于事:
Thread t = new Thread(new Runnable(){
     public void run(){
     Log.v("==================","run "+new Date());
     startActivityForResult(new Intent(ctx,myCustomsubactivity.class),1);  
     } });
     Log.v("==================","calling run "+new Date());
     t.start();      
     try {
        t.join();
    } catch (InterruptedException e) {Log.v("==================","can't join");}
    Log.v("==================","back from activity "+new Date());

你知道如何强迫主要活动等待吗? Android中不支持Thread.wait()方法(程序抛出错误).

解决方法

我同意nikolay这绝对是安卓的方法.

在子活动使用setResult中使用startActivityForResult启动子活动,以在数据包中添加结果代码和具有所需数字的意图.

在您的第一个活动中覆盖onActivityResult并从Intent中检索数字.

如果你使用静态变量,这在第一时间似乎更容易,但是它非常不安全,并且在某些情况下这可能不起作用.如果您的程序被发送到后台,您的活动将被保存,但如果手机内存不足,系统将关闭您的程序,用户恢复后,一切看起来就像用户离开它的那一刻,但静态变量将被重新创建为他们的初始化值.

尝试习惯android activity lifecycle的工作方式.使用此方法将导致更少的已用内存和更好的用户体验.

相关文章

###实现效果*本实例主要实现用ViewPage和Fragment实现选项卡...
一、安装 JDK 下载JDK最新版本,下载地址如下: http://www....
这篇“android轻量级无侵入式管理数据库自动升级组件怎么实现...
今天小编给大家分享一下Android实现自定义圆形进度条的常用方...
这篇文章主要讲解了“Android如何解决字符对齐问题”,文中的...
这篇文章主要介绍“Android岛屿数量算法怎么使用”的相关知识...