另一个包中的新活动会杀死我的应用

时间:2016-08-19 10:26:49

标签: android android-intent android-activity android-package-managers

我正在开始一个新意图:

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);

但它不起作用。

[SOLUTION]:

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...
    }

1 个答案:

答案 0 :(得分:1)

你不能这样做。如果您想使用Activity启动另一个startActivityForResult(),则无法使用Intent.FLAG_ACTIVITY_NEW_TASK。当启动将返回结果的Activity时,目标Activity必须在同一任务中运行。

你无能为力。