我同时运行两个活动: mainActivity childActivity 。当用户点击在按钮中的 mainActivity 中, childActivity 启动。我想要做的是这样的:

当的活性活性是 childActivity 与用户的点击然后主页按钮重新启动应用程序下,我想看 childActivity <强>而不是时启动的 mainActivity

我有一些建议实际上变通。我试图操纵在onStart,onRestart,的onResume,的onStop,事件的onDestroy。但是,他们并没有完全解决的问题。应该有出有一个聪明的办法。谢谢你。

编辑:

感谢您的回答,Soonil。情况下,你说,当活动从最近的活动窗口称为正在发生的事情。 (窗口打开时,你长按home键)。然而,当您从主屏幕中打开它,这是没有发生。 (比如从起动开度),我不认为我的代码有一个具体的问题,产生这个错误。因为,我创建了一个测试项目,并发送问题之前尝试过独立,面临同样的问题。总之,这里是测试代码:

public class MainActivity extends Activity implements OnClickListener {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        this.setTitle("MainActivity");

        ((Button) findViewById(R.id.btnChildActivity)).setOnClickListener(this);
    }

    @Override
    public void onClick(View arg0) {
        // TODO Auto-generated method stub
        startActivity(new Intent(this, ChildActivity.class));
    }

}

public class ChildActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main2);
        this.setTitle("ChildActivity");

    }
}
有帮助吗?

解决方案

修改:找到了解决你的问题有点随机今天!看到这个错误报告。这究竟说明了你的问题。我无法重现该问题的原因是我从来没有直接的Eclipse启动的应用程序。我使用Eclipse安装应用程序,然后启动它自己。


这已经是Android应用程序的默认行为,不需要特殊技巧来实现这一目标。我很惊讶,你的应用程序没有表现出这种行为。每个Android应用程序维护的活动堆栈,从字面上的活动LIFO堆栈。这些活动可以进一步划分为任务,但世俗的应用程序的99%永远不会需要知道在我的经验任务什么。

当您按下home键,整个应用程序放入背景。而在后台,它可能会被杀死在任何时候存储的担忧,但如果恢复前没有经过多长时间,所以一般不会死亡,不必重新创建。当选择(在栈上或更准确地,只有最上面的项目)再次应用,堆栈被恢复。

如果您的应用程序没有表现出这种行为,我怀疑它是与你是如何开始在MainActivity和childActivity和任何额外的意图的标志,你可以使用。任何机会,你可以在你是如何开始在MainActivity并张贴代码片段childActivity?

其他提示

我回去,并与类似的应用程序进行测试,即使当处理被压出的存储器中作为Soonil说ChildActivity自动重构。你是在模拟器上或实际设备上看到了这个?

如果你运行你的应用程序和观看的logcat,你应该看到类似下面您启动后您的应用程序,然后打开ChildActivity,然后点击首页,然后重新启动您的活动:

启动活动:意向{行动= android.intent.action.MAIN类别= {android.intent.categroy.LAUNCHER}标志= ...排版= {com.yourpackagename.MainActivity}} 对于活性yourpackagename.ChildActivity开始PROC:PID = X UID = Y的GID = {} 显示活动/.ChildActivity

你能发布的logcat的输出,当你没有看到你所期望的行为?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top