因为我要做个手势密码,类似于新版QQ有的这个功能。
问题来了:
不管我是哪个activity,当我手机切换到主界面,或者打开其他应用的时候。再返回回我的app。这个事件如何获取?

解决方案 »

  1.   

    你onpause 设置一个标记位,然后onresume 的时候读取这个标记位,然后调用这个手势密码?
      

  2.   

    onpause 设置一个标记位,这个是在activity里设?
      

  3.   

    onpause 设置一个标记位,这个是在activity里设?是的啊
      

  4.   

    sharedPreference 这个存储吧 
      

  5.   

    onpause 设置一个标记位,这个是在activity里设?是的啊
    activity的pause到resume,不一定是整个应用被切出去了啊。而且,需要每个activity里都去加,不是很麻烦嘛?这个应该想办法在application下手吧
      

  6.   

    让他们统一继承一个A类  A类继承ACtivity  A类里面就实现一个 这个 onresume  和onpause的操作 这样是否可以解决呢?虽然 onresume 和onpause  不是一个完整的过程,但是无论你怎么启动应用 怎么退出应用都要走这两步的。
      

  7.   

    onpause 设置一个标记位,这个是在activity里设?是的啊
    activity的pause到resume,不一定是整个应用被切出去了啊。而且,需要每个activity里都去加,不是很麻烦嘛?这个应该想办法在application下手吧sorry 请忽略上面的回答。我没有考虑到你内部多个activity切换的情况
      

  8.   

    有了 你内部startactivity的时候 先修改该标记位,就可以避免内部切换的时候 锁屏了。其他情况还是按照上面的处理来搞。
      

  9.   

    onpause 设置一个标记位,这个是在activity里设?是的啊
    activity的pause到resume,不一定是整个应用被切出去了啊。而且,需要每个activity里都去加,不是很麻烦嘛?这个应该想办法在application下手吧sorry 请忽略上面的回答。我没有考虑到你内部多个activity切换的情况嗯,在给想想其他好办法
      

  10.   

    开启一个服务或者在aplication里面开一个线程,通过
    ActivityManager activityManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
    ComponentName componentName = activityManager.getRunningTasks(2).get(1).topActivity;
    获取当前活动activity,没试过不知都行不行
      

  11.   

    只要不可见ACT走nonstop() 在里面用Bundle 保存。回来走onresume()再读一下页面状态 重复赋值即可
      

  12.   

    写一个基类的Activity
    在onStop()里判断整个应用是不是在手机前台。然后记录标志位flag
    在onResume()里根据标志位决定是不是开启手势密码。复位标志位flag检查应用是否在前台运行代码如下:
    public boolean isAppOnForeground() {
    // Returns a list of application processes that are running on the
    // device ActivityManager activityManager = (ActivityManager) getApplicationContext().getSystemService(Context.ACTIVITY_SERVICE);
    String packageName = getApplicationContext().getPackageName(); List<RunningAppProcessInfo> appProcesses = activityManager.getRunningAppProcesses();
    if (appProcesses == null)
    return false; for (RunningAppProcessInfo appProcess : appProcesses) {
    // The name of the process that this object is associated with.
    if (appProcess.processName.equals(packageName) && appProcess.importance == RunningAppProcessInfo.IMPORTANCE_FOREGROUND) {
    return true;
    }
    } return false;
    }