我的应用程序有4个不同的屏幕,我正在尝试设置一个类似标签的结构,只使用按钮。 为简单起见,我将其称为A,B,C,D。
现在在每个Activity的onCreate方法中,我有3个按钮Button监听器(在Activity A中,我有按钮B,C,D的监听器),当按下相应的按钮时触发startActivity。
当我从说A-> B导航然后尝试使用按钮返回B-> A时,问题就出现了,我的应用程序崩溃了。我相信这是因为A在后台暂停,并且尝试启动它的新实例会导致程序崩溃。
所以我想知道是否有办法在没有创建新实例的情况下恢复活动A. 我期待有某种resumeActivity()方法,但它似乎不存在。
感谢您的帮助。
答案 0 :(得分:0)
试试这个:
public void onResume() {
super.onResume();
// do your stuff here
}
答案 1 :(得分:0)
你有很多方法可以做到这一点。
1)将您的活动A的 LaunchMode 设置为SingleInstance
2)不要用Intent调用Activity A,只需完成B,它会自动显示A。
3)参见 this answer ,只创建一个基类并将其扩展到A到D的其他位置,并在基类中单击所有按钮。(简化代码)
4)如果活动A必要Override onResume()
。
答案 2 :(得分:0)
如果您不想自己制作整个功能,也可以使用TabHost 这是一个教程:http://developer.android.com/resources/tutorials/views/hello-tabwidget.html
答案 3 :(得分:0)
使用TabActivity
然后,如果您不想使用选项卡的默认实现,那么我认为您将从xml中删除<TabWidget>
并使用TabHost.setCurrentTab更改您所在的活动。
答案 4 :(得分:0)
您应该考虑使用Fragments
。让A,B,C和D各为Fragment
,然后只有一个Activity
,只处理Fragments
之间的导航。