我需要在用户登录某个页面时显示安全提示,当他通过home键或最近键返回时,但是这些fragements和activity生命周期回调在不同的OEM上有所不同, 我尝试使用活动堆栈来监视topactivity,但它只返回我的应用程序包,还有什么可以完成的。我需要在我的应用程序中实现一个安全锁,如applock
ActivityManager manager = (ActivityManager) getApplicationContext()
.getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningTaskInfo> runningTasks = manager.getRunningTasks(1);
String mPackageName="";
if(Build.VERSION.SDK_INT > 20){
mPackageName= manager.getRunningAppProcesses().get(0).processName;
}
else{
mPackageName = manager.getRunningTasks(1).get(0).topActivity.getPackageName();
}
if (runningTasks != null && runningTasks.size() > 0) {
ComponentName topActivity = runningTasks.get(0).topActivity;
if (!mPackageName.equals(getPackageName())) {
isTopActivityFromApp = false;
} else {
if (mPackageName.equals(getPackageName()) && topActivity.getClassName().equals(PaySendActivity.class.getName()) && !isTopActivityFromApp) {
// Other Application is opened
isTopActivityFromApp = true;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
if (WalletSharedPrefs.INSTANCE.isPatternLockEnabled(getApplicationContext())) {
showprompt();
}
}
}
}
我认为你必须建立一个启动应用程序,如Nova Launcher或Go Launcher等。我认为这是拦截其他应用程序的唯一方法 –
不,我不需要开发一个启动器应用程序,我需要做的就是在用户登陆时显示安全锁定,无论是从最后还是回家。 –