另一个包中的新 activity 终止了我的应用程序
New activity in another package kill my app
我正在开始一个新的意图:
Intent intent = new Intent();
intent.setComponent(new ComponentName("xx.xxxxxx.xxxx", "xx.xxxxxx.xxxx.Activity"));
startActivityForResult(intent, 1);
但有时新的应用程序有一些错误,我必须杀死他们,我必须重新启动它。
我尝试添加:
intent.setFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK & Intent.FLAG_ACTIVITY_NEW_TASK);
但它不起作用。
[解决方案]:
Intent intent = new Intent();
intent.setComponent(new ComponentName("xx.xxxxxx.xxxx", "xx.xxxxxx.xxxx.Activity"));
startActivityForResult(intent, 1);
MainActivity
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK & Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
SecondActivity
Intent intent = new Intent();
intent.setComponent(new ComponentName("xx.xxxxxx.xxxx", "xx.xxxxxx.xxxx.Activity"));
startActivityForResult(intent, 1);
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
// saveInSharedPreferences...
finish();
}
MainActivity
onResume() {
getWithSharedPreferences...
}
你不能这样做。如果您想使用 startActivityForResult()
开始另一个 Activity
,则不能使用 Intent.FLAG_ACTIVITY_NEW_TASK
。当启动一个将 return 结果的 Activity
时,目标 Activity
必须 运行 在同一个任务中。
对此您无能为力。
我正在开始一个新的意图:
Intent intent = new Intent();
intent.setComponent(new ComponentName("xx.xxxxxx.xxxx", "xx.xxxxxx.xxxx.Activity"));
startActivityForResult(intent, 1);
但有时新的应用程序有一些错误,我必须杀死他们,我必须重新启动它。
我尝试添加:
intent.setFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK & Intent.FLAG_ACTIVITY_NEW_TASK);
但它不起作用。
[解决方案]:
Intent intent = new Intent();
intent.setComponent(new ComponentName("xx.xxxxxx.xxxx", "xx.xxxxxx.xxxx.Activity"));
startActivityForResult(intent, 1);
MainActivity
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK & Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
SecondActivity
Intent intent = new Intent();
intent.setComponent(new ComponentName("xx.xxxxxx.xxxx", "xx.xxxxxx.xxxx.Activity"));
startActivityForResult(intent, 1);
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
// saveInSharedPreferences...
finish();
}
MainActivity
onResume() {
getWithSharedPreferences...
}
你不能这样做。如果您想使用 startActivityForResult()
开始另一个 Activity
,则不能使用 Intent.FLAG_ACTIVITY_NEW_TASK
。当启动一个将 return 结果的 Activity
时,目标 Activity
必须 运行 在同一个任务中。
对此您无能为力。