2017-05-24 6 views
-4

画面がロックされている(アプリがまだ残っている)場合、またはアプリが5分以上バックグラウンドに移動した場合は、自動的にアプリケーションをログアウトします。バックグラウンドでアプリケーションが自動的にログアウトする

+1

あなたは今まで何を試しましたか? –

+4

あなたはまた、コーヒーを飲みたいですか? – lelloman

+0

[Android Activity Lifecycle](https://developer.android.com/guide/components/activities/activity-lifecycle.html)をご覧ください。例えば。アクティビティが一時停止しているときにタイマーを開始します。 – DrNachtschatten

答えて

0
public static boolean isAppIsInBackground(Context context) { 
     boolean isInBackground = true; 
     ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); 
     if (Build.VERSION.SDK_INT > Build.VERSION_CODES.KITKAT_WATCH) { 
      List<ActivityManager.RunningAppProcessInfo> runningProcesses = am.getRunningAppProcesses(); 
      for (ActivityManager.RunningAppProcessInfo processInfo : runningProcesses) { 
       if (processInfo.importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND) { 
        for (String activeProcess : processInfo.pkgList) { 
         if (activeProcess.equals(context.getPackageName())) { 
          isInBackground = false; 
         } 
        } 
       } 
      } 
     } else { 
      List<ActivityManager.RunningTaskInfo> taskInfo = am.getRunningTasks(1); 
      ComponentName componentInfo = taskInfo.get(0).topActivity; 
      if (componentInfo.getPackageName().equals(context.getPackageName())) { 
       isInBackground = false; 
      } 
     } 

     return isInBackground; 
    } 

5分のハンドラを追加してこの関数を呼び出し、5分後にまだfalseを返す場合は、ログアウト関数を呼び出します。

関連する問題