Как я могу иметь экран слушателя простоя? - PullRequest
6 голосов
/ 02 декабря 2011

Мне нужно использовать бездействующий слушатель, чтобы слушать, использует ли пользователь приложение, или бездействующий, когда активность активнаМне нужно что-то делать, когда пользователь не использует приложение более десяти секунд.Как я могу сделать это возможным?

1 Ответ

7 голосов
/ 02 декабря 2011

Вот идея, как вы можете решить эту задачу:

Во-первых, вам нужен Runnable (), который будет запускаться по истечении времени ожидания (например, 10 секунд). Ниже приводится Runnable ():

private Runnable DoOnTimeOut = new Runnable() 
{
    public void run() 
    {
        // Do something Here
    }
}

Теперь в своей деятельности вы можете вызвать postDelayed для DoOnTimeOut:

Handler hl_timeout = new Handler();

@Override
public void onCreate(Bundle b)
{
   hl_timeout.postDelayed(DoOnTimeOut, 10000); // The DoOnTimOut will be triggered after 10sec
}

Теперь наиболее важной частью является то, что, когда вы видите взаимодействие с пользователем, вы хотите отменить вызов DoOnTimeOut, а затем снова установить вызов на следующие 10 секунд. Вот метод переопределения вашей активности для взаимодействия с пользователем:

@Override
public void onUserInteraction()
{
    super.onUserInteraction();
    //Remove any previous callback
    hl_timeout.removeCallbacks(DoOnTimeOut);
    hl_timeout.postDelayed(DoOnTimeOut, 10000);
}

Надеюсь, это будет полезно для вас.

...