Öme*_*mer 6 android android-activity
我有两个运行的活动:mainActivity和childActivity.每当用户点击的按钮mainActivity,该childActivity启动.我想要做的是:
当活动活动是childActivity并且用户单击主页按钮然后重新启动应用程序时,我希望看到childActivity 而不是 启动的mainActivity.
我有一些建议实际上解决了.我试图操纵onStart,onRestart,onResume,onStop,onDestroy事件.但是,他们没有完全解决问题.应该有一个聪明的方法.谢谢.
编辑:
谢谢你的回答,Soonil.您说的是从最近的活动窗口调用活动时发生的情况.(长按主页按钮时窗口打开)但是; 从主屏幕打开时不会发生这种情况.(比如从头开始)我不认为我的代码有一个特定的问题来产生这个错误.因为,我创建了一个测试项目并在发送问题之前单独尝试并面临同样的问题.无论如何,这是测试代码:
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");
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:今天随机找到了您问题的解决方案!请参阅此错误报告。它准确地解释了你的问题。我无法重现该问题的原因是我从未让 Eclipse 直接启动应用程序。我使用 Eclipse 安装该应用程序,然后自己启动它。
这已经是 Android 应用程序的默认行为,不需要特殊的技巧来实现这一点。我很惊讶您的应用程序没有表现出这种行为。每个 Android 应用程序都维护一个 Activity 堆栈,实际上是一个 LIFO 活动堆栈。这些活动可以进一步分为任务,但根据我的经验,99% 的普通应用程序不需要了解有关任务的任何信息。
当您按下主页按钮时,整个应用程序堆栈都会进入后台。在后台时,它可能随时因内存问题而被杀死,但如果在恢复之前没有经过太多时间,那么它通常不会被杀死,也不必重新创建。当您再次选择该应用程序时,堆栈(或更准确地说,仅恢复堆栈顶部的项目)。
如果您的应用程序没有表现出这种行为,我怀疑它与您启动 mainActivity 和 childActivity 以及您可能使用的任何额外 Intent 标志的方式有关。您有机会发布有关如何启动 mainActivity 和 childActivity 的代码片段吗?
| 归档时间: |
|
| 查看次数: |
6481 次 |
| 最近记录: |