我刚刚开始使用Android Develop(拥有一些iOS开发经验),而且我非常震惊为什么如果我“崩溃”,只有一个活动崩溃不是整个应用程序?
我创建了演示应用程序(为什么只有MyActivity3崩溃不是整个应用程序?)
启动MyActivity2的代码:
Button goToActivity2Button = (Button) this.findViewById(R.id.goToActityButton);
final MyActivity2 self = this;
goToActivity2Button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent activity3Intent = new Intent(self, MyActivity3.class);
self.startActivity(activity3Intent);
}
});
在MyActivity3中崩溃
Button goToActivity2Button = (Button) this.findViewById(R.id.crashTheAppButton);
goToActivity2Button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String nullString = null;
nullString.length();
}
});
答案 0 :(得分:0)
因为按下按钮时MyActivity2没有完成。你开始进入MyActivity3的意图,你创建MyActivity3但MyActivity2仍然是#34;在后台"。如果要处理活动周期,则必须覆盖onResume()
和onPause()
方法。
直到你没有finish()
一项活动,它将继续开放。
答案 1 :(得分:0)
我也是Android编程的新手,并且无数次遇到了同样的情况。如果我没有弄错,每个活动被视为一个不同的主题。当一个线程崩溃时,它并不意味着整个程序会崩溃,只是发生异常的线程。这就是为什么当一个Activity崩溃时,如果异常不是先前打开的Activity的问题,那么当前的Activity将会崩溃,而在后台运行的前一个将成为正在运行的Activity。一般来说,根据我的意见,你应该让你的应用程序结束活动。相反,最好让操作系统以其认为最佳的方式处理活动的开启和关闭。