2016-12-16 28 views
0

我需要在用户登录某个页面时显示安全提示,当他通过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(); 
          } 
         } 
        } 
       } 
+0

我认为你必须建立一个启动应用程序,如Nova Launcher或Go Launcher等。我认为这是拦截其他应用程序的唯一方法 –

+0

不,我不需要开发一个启动器应用程序,我需要做的就是在用户登陆时显示安全锁定,无论是从最后还是回家。 –

回答

0

您可以使用第三方库,你可以找到你正在寻找 here

0

什么?如果你想管理你的应用程序顶部的活动做到这一点的最好办法就是多听你的onResume/onPause方法与ActivityLifecycleCallbacks 但是,如果您想要管理其他应用程序的顶级活动,则只能跟踪其软件包名称而不是顶级活动的类名,最好的方法是使用UsageStatsManager

相关问题