16

BroadcastReceiver 内からメイン アクティビティを開始しようとしています。アクティビティ クラス名を指定したくありませんが、android のアクションとカテゴリを使用してメイン アクティビティを把握します。

うまくいかないようです。

送信コード:

Intent startIntent = new Intent();

startIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startIntent.setAction(Intent.ACTION_MAIN);
startIntent.setPackage(context.getPackageName());
startIntent.addCategory(Intent.CATEGORY_LAUNCHER);        
context.startActivity(startIntent);

次のエラーが表示されます。

原因 bt: android.content.ActivityNotFoundException: Intent を処理するアクティビティが見つかりません}

何か案は?

4

4 に答える 4

24

別のトピックからのコピー:

これは API レベル 3 (Android 1.5) 以降で機能します。

private void startMainActivity(Context context) throws NameNotFoundException {
    PackageManager pm = context.getPackageManager();
    Intent intent = pm.getLaunchIntentForPackage(context.getPackageName());
    context.startActivity(intent);
}
于 2015-09-21T12:37:51.257 に答える
9

これは startActivity の正しい方法ではありません。
代わりにこのコードを試してください:

Intent startIntent = new Intent(context, MainActivity.class);
startIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);        
context.startActivity(startIntent);
于 2012-06-14T20:37:10.013 に答える