Android不活动计时器

时间:2016-07-04 02:15:09

标签: java android

我正在根据这个答案实现一个不活动计时器:https://stackoverflow.com/a/12481918/6298161

我需要计时器来处理多个活动,因此从原始帖子中建议的评论我将Handler和Runnable更改为静态。

我现在如何重定向到我发表评论的runnable中的新活动?非常感谢任何帮助

public class InactivityTimerActivity extends AppCompatActivity {


    public static final long DISCONNECT_TIMEOUT = 300000; // 5 min = 5 * 60 * 1000 ms

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


    private static Handler disconnectHandler = new Handler() {
        public void handleMessage(Message msg) {
        }
    };

    private static Runnable disconnectCallback = new Runnable() {
        @Override
        public void run() {
            // I want to redirect here
        }
    };

    public void resetDisconnectTimer() {
        disconnectHandler.removeCallbacks(disconnectCallback);
        disconnectHandler.postDelayed(disconnectCallback, DISCONNECT_TIMEOUT);
    }

    public void stopDisconnectTimer() {
        disconnectHandler.removeCallbacks(disconnectCallback);
    }

    @Override
    public void onUserInteraction() {
        resetDisconnectTimer();
    }

    @Override
    public void onResume() {
        super.onResume();
        resetDisconnectTimer();
    }

    @Override
    public void onStop() {
        super.onStop();
        stopDisconnectTimer();
    }
}

1 个答案:

答案 0 :(得分:0)

我认为你不应该让它变得静止。只需保持受保护,然后在启动新活动时,在intent中放置一个整数变量(剩余时间或计时器运行的时间)。然后在创建新活动时,您将获得该值并根据该值设置计时器。