这是我的问题。我正在开发从服务器加载一些文档的应用程序。我通过 Intent.ACTION_VIEW 在另一个应用程序中打开文档。这一切都很好。问题是整个应用程序都受 pin 保护,因此我必须捕获诸如“发送到后台”或“屏幕锁定”之类的事件以在之后调出 pin 屏幕,当在我的上方打开另一个应用程序时,这不起作用。因此,如果用户打开文档然后按主页按钮,从菜单中单击我的启动图标,然后他再次获得打开文档的外部应用程序,并再次使用后退按钮访问我的应用程序。这是需要修复的安全问题。以下是一些代码片段:
打开文件:
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;
}
}
我的问题是:当打开另一个应用程序时,是否可以检测我的应用程序是否被发送到后台?按下启动器图标时如何不打开另一个应用程序。
感谢所有回复。问候卢博斯