Android 如何在应用程序类中检查设备空闲几分钟?

Android 如何在应用程序类中检查设备空闲几分钟?,android,Android,我想检查设备空闲状态几分钟。当它是一项特殊的活动时,我能够得到它。如下 public class MainActivity extends AppCompatActivity { Handler handler; Runnable r; private ContentResolver contentResolver; @Override protected void onCreate(Bundle savedInstanceState) {

我想检查设备空闲状态几分钟。当它是一项特殊的活动时,我能够得到它。如下

 public class MainActivity extends AppCompatActivity {

    Handler handler;
    Runnable r;
    private ContentResolver contentResolver;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);




        handler = new Handler();
        r = new Runnable() {

            @Override
            public void run() {
                // TODO Auto-generated method stub
                Toast.makeText(MainActivity.this, "user is inactive from last 10 seconds", Toast.LENGTH_SHORT).show();
            }
        };
        startHandler();


    }

    @Override
    public void onUserInteraction() {
        // TODO Auto-generated method stub
        super.onUserInteraction();
        stopHandler();//stop first and then start
        startHandler();
    }

    public void stopHandler() {
        handler.removeCallbacks(r);
    }

    public void startHandler() {
        handler.postDelayed(r,  10000); //for 10 seconds
    }


}
但我想检查整个应用程序的设备空闲状态。我在应用程序类中检查了没有方法为onUserInteraction()
是否还有其他技巧。

我认为您应该创建一个BaseActivity,它将扩展AppCompatActivity,并将您的代码放入BaseActivity中,并用AppCompatActivity替换所有活动中的代码。我希望它能对您有所帮助。

我认为您应该创建一个BaseActivity,它将扩展AppCompatActivity,并将您的代码放在BaseActivity中,并用AppCompatActivity替换所有活动中的代码。我希望它能帮助你

在应用程序类中创建3个方法, 并重置该方法中activityVisible变量的值

您可以通过以下方式调用这些方法

在活动可见时执行操作

在应用程序类中创建3个方法, 并重置该方法中activityVisible变量的值

您可以通过以下方式调用这些方法

在活动可见时执行操作


我认为用户交互只能分析内部
活动
。原因
活动
表示UI而不是应用程序类。您可以为所有活动创建一个基本活动,并分析父活动中的交互。@ADM如何使其在应用程序类中工作@ADM的可能副本上述代码正在工作..但仅在空闲时显示toast..之后再次显示(相同的空闲继续)那么这一次它没有显示toast..如何让它在空闲几秒钟时反复显示我认为用户交互只能在
活动中分析。原因
活动
表示UI而不是应用程序类。您可以为所有活动创建一个基本活动,并分析父活动中的交互。@ADM如何使其在应用程序类中工作@ADM的可能副本上述代码正在工作..但仅在空闲时显示toast..之后再次显示(相同的空闲继续)那么这一次它没有显示吐司..如何使它在空闲几秒钟时一次又一次显示
public static boolean activityVisible; // Variable that will check the current activity state       

public static boolean isActivityVisible() {
        return activityVisible; // return true or false
    }

public static void activityResumed() {
        activityVisible = true;// this will set true when activity resumed

    }

public static void activityPaused() {
        activityVisible = false;// this will set false when activity paused

}
AppClass.activityResumed();// On Resume notify the Application
AppClass.activityPaused();// On Pause notify the Application
boolean isVisible = AppClass.isActivityVisible();