0

アクティビティ「MyActivity」を開始する(前面に出す可能性が高い)方法が必要です...そのために、xmlマニフェストしか知りません(つまり、パッケージ名、クラス名、インテントフィッター-メインのみ、特定のブロードキャストはありません)

では、どうすればその活動を開始できますか??

私が今使っているもの:

public boolean startActivity2(String componentName) {
    Intent intent = new Intent(Intent.ACTION_MAIN);
    intent.addCategory(Intent.CATEGORY_LAUNCHER);

    intent.setComponent(ComponentName.unflattenFromString(componentName));
    if (m_ContainerActivity.getPackageManager().resolveActivity(intent, 0) != null) {
        m_ContainerActivity.startActivity(intent);

        return true;
    }

    return false;
}

そして、私はそれを次のように呼びます:

startActivity2("com.app.pachage/.subpack.MyActivity");

そして、これはアクティビティを開始しますが、私は私のプロセスです-奇妙な動作に+10します(古いプロセスにもMyActivityがあります)..私が望むのは、古いものをバックスタックから戻すことです..

: MyActivity には、インテント フィルターに特定のインテントがなく、ブロードキャストもありません。

だからアイデア??

4

3 に答える 3

0

次のようなインテントフラグを設定してみてください

I.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT)
于 2012-04-23T11:42:02.253 に答える
0

おそらく次のようにしてみてください:

Intent i = new Intent();
i.setClassName("com.app.pachage", "com.app.pachage.subpack.MyActivity");
startActivity(i);
于 2012-04-23T11:39:10.867 に答える
0

それを試してみてください。それは役立つかもしれません

intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT|Intent.FLAG_ACTIVITY_SINGLE_TOP|Intent.FLAG_ACTIVITY_NEW_TASK);

または、このように試すことができます

Intent intent = new Intent();
intent.setClassName(getapplicationContext(), com.app.pachage.subpack.MyActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT|Intent.FLAG_ACTIVITY_SINGLE_TOP|Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
于 2012-04-23T15:36:28.757 に答える