これが私の問題です。サーバーからいくつかのドキュメントをロードするアプリを開発しています。Intent.ACTION_VIEW を介して別のアプリでドキュメントを開きます。これはすべて正常に機能しています。問題は、アプリ全体がピンで保護されているため、「バックグラウンドに送信」や「画面ロック」などのイベントをキャプチャして、後でピン画面を表示する必要があり、これが私の上で別のアプリを開いたときに機能しないことです。したがって、ユーザーがドキュメントを開いてホームボタンを押すと、メニューから起動アイコンをクリックすると、ドキュメントが開かれた外部アプリが再び取得され、戻るボタンでアプリに再度アクセスします。これは修正が必要なセキュリティ上の問題です。以下にいくつかのコード スニペットを示します。
文書を開く:
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
Uri uri = Uri.fromFile(downloadedFile);
String mimeType = document.getMimeType();
intent.setDataAndType(uri, mimeType);
startActivityForResult(intent, 1);
バックグラウンドに送信されたキャプチャ:
ActivityManager am = (ActivityManager) context
.getSystemService(Context.ACTIVITY_SERVICE);
List<RunningTaskInfo> tasks = am.getRunningTasks(1);
if (!tasks.isEmpty()) {
ComponentName topActivity = tasks.get(0).topActivity;
if (!topActivity.getPackageName().equals(context.getPackageName())) {
IN_BACKGROUND = true;
Log.i(PinUtil.class.getSimpleName(), "App sent to background ");
} else {
IN_BACKGROUND = false;
}
}
私の質問は次のとおりです:別のアプリが開かれたときにアプリがバックグラウンドに送信されるかどうかを検出することは可能ですか? ランチャー アイコンが押されたときに別のアプリを開かないようにする方法。
すべての応答に感謝します。よろしくルボス