am540 2015-06-24 08:38 采纳率: 0%
浏览 1511

安卓过期输入密码如何实现?

有些应用长时间在后台切换到前台或者屏幕关了又打开时会要求输入密码,这功能是怎么实现的?求高手指点一下思路

  • 写回答

3条回答 默认 最新

  • WorldMobile 2015-06-24 11:29
    关注

    在程序里判断是否切换到后台,如果切换到后台再打开时要求输入密码,判断是否切换到后台的代码如下:

    Android判断当前应用程序处于前台还是后台的两种方法

    1、通过RunningTaskInfo类判断(需要额外权限):

    复制代码 代码如下:
    /**
    *判断当前应用程序处于前台还是后台
    */
    public static boolean isApplicationBroughtToBackground(final Context context) {
    ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
    List tasks = am.getRunningTasks(1);
    if (!tasks.isEmpty()) {
    ComponentName topActivity = tasks.get(0).topActivity;
    if (!topActivity.getPackageName().equals(context.getPackageName())) {
    return true;
    }
    }
    return false;

    }
    

    需要在AndroidMenitfest.xml文件中添加以下权限

    复制代码 代码如下:

    2、通过RunningAppProcessInfo类判断(不需要额外权限):

    复制代码 代码如下:
    public static boolean isBackground(Context context) {

    ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
    List<RunningAppProcessInfo> appProcesses = activityManager.getRunningAppProcesses();
    for (RunningAppProcessInfo appProcess : appProcesses) {
         if (appProcess.processName.equals(context.getPackageName())) {
                if (appProcess.importance == RunningAppProcessInfo.IMPORTANCE_BACKGROUND) {
                          Log.i("后台", appProcess.processName);
                          return true;
                }else{
                          Log.i("前台", appProcess.processName);
                          return false;
                }
           }
    }
    return false;
    

    }

    评论

报告相同问题?

悬赏问题

  • ¥15 matlab实现基于主成分变换的图像融合。
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制
  • ¥20 usb设备兼容性问题
  • ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊