0

ユーザーが友人に電話できるアプリケーションを作成しようとしていますが、ユーザーが Android のネイティブ コール インテントを使用しないようにするために、ネイティブ インテントを開始し、ブロードキャスト レシーバーを使用して以前のアプリケーションを画面に再開します。電話を切るボタン、スピーカー ボタンなどを使用して通話画面をシミュレートします。

ただし、ブロードキャスト レシーバーは別の APK に配置されています (アーキテクチャ上の理由から)。以前の APK をその状態で再開するにはどうすればよいですか? 実際、私はこのコードを使用しようとしていましたが、アクティビティを再開せず、新しいものを作成し、古いデータを失います

PackageManager packageManager = context.getPackageManager();
Intent i= packageManager.getLaunchIntentForPackage("path.to.package");
i.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
context.startActivity(i);
4

2 に答える 2

1

解決しました...フラグをFLAG_ACTIVITY_SINGLE_TOPに変更しました

最終的なコード:

PackageManager packageManager = context.getPackageManager();
Intent i= packageManager.getLaunchIntentForPackage("path.to.package");
i.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
context.startActivity(i);
于 2013-06-19T22:37:23.793 に答える
1

アクティビティを単一のインスタンスにする必要があるかもしれないと思うので、毎回新しいアクティビティを作成するのではなく、まだ終了していない限り、すでに起動されているアクティビティを再利用しようとします。シングルについてもっと読む必要があります問題に合ったものに応じて、インスタンスまたは単一タスクのアクティビティを確認するには、この質問を見てください。

Android singleTask または singleInstance 起動モード?

よろしく!

于 2013-06-19T19:28:57.867 に答える