在一个APP启动另一个一启动会crash的APP导致APP的当前Activity被关闭
crash sample app:
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
throw new RuntimeException("crash");
}
}
然后再另一个app的按钮listener启动这个app launch sample app:
public class HomeActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.home_layout);
findViewById(R.id.amltBtn).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
Intent installIntent = getPackageManager().getLaunchIntentForPackage("com.mediav.crashapp");
startActivity(installIntent);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
}
结果点按钮系统会给个crash sample app已停止的提示框,但launch sample app的当前Activity也退出来了。logcat没看到launch sample app报任何警告和错误信息。
这个问题郁闷我好久了,大家知道是什么原因引起的吗?
换台手机试过吗? 这个installIntent是不是要添加flags?
2015-06-17 14:29 GMT+08:00 sascsy [email protected]:
crash sample app:
public class MyApplication extends Application { @Override public void onCreate() { super.onCreate(); throw new RuntimeException("crash"); } }
然后再另一个app的按钮listener启动这个app launch sample app:
public class HomeActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.home_layout); findViewById(R.id.amltBtn).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { try { Intent installIntent = getPackageManager().getLaunchIntentForPackage("com.mediav.crashapp"); startActivity(installIntent); } catch (Exception e) { e.printStackTrace(); } } }); } }
结果点按钮系统会给个crash sample app已停止的提示框,但launch sample app的当前Activity也退出来了。logcat没看到launch sample app报任何警告和错误信息。
这个问题郁闷我好久了,大家知道是什么原因引起的吗?
— Reply to this email directly or view it on GitHub https://github.com/android-cn/android-discuss/issues/192.
换台手机试过吗? 这个installIntent是不是要添加flags?
我在HTC D826w和小米4测试过,都有这个问题。而且启动app的startActivity无论是写在子线程、service、甚至独立进程的service也都能重现这个问题。NET_TASK的FLAG也加过。@spysoos
Context.startActivity()启动的Activity和当前的Activity是在同一个任务栈里面吧。如果崩溃的话(应该)会导致整个任务栈被移除。
你把HomeActivity的launchMode设置为singleInstance模式试试?
Context.startActivity()启动的Activity和当前的Activity是在同一个任务栈里面吧。如果崩溃的话(应该)会导致整个任务栈被移除。
你把HomeActivity的launchMode设置为singleInstance模式试试?
试了下还是不行 我感觉这种方式应该和NEW_TASK的Flag效果类似
把 HomeActivity 指定在 另一个 process 中运行, 这样 即使 HomeActivity 崩溃了, 对主程序不会产生影响
把 HomeActivity 指定在 另一个 process 中运行, 这样 即使 HomeActivity 崩溃了, 对主程序不会产生影响
无效果 而且进程没有崩溃 也没有抛异常 只是HomeActivity被系统finish了
override fun onStop() {
super.onStop()
}
我试了下在当前的Activity加上这个后它就不会被关闭了
感谢您的关注,我会尽快给您答复
你好,邮件已收到,谢谢
这是来自QQ邮箱的假期自动回复邮件。 您好,我最近正在休假中,无法亲自回复您的邮件。我将在假期结束后,尽快给您回复。
这是来自QQ邮箱的自动回复邮件。 您好,您的邮件已收到。如有后续我查收后会立刻联系您。如在假期,我将在假期结束后,尽快给您回复。