timer.cancel()在android中不工作

timer.cancel()在android中不工作,android,android-activity,Android,Android Activity,如果用户在2分钟内未与应用程序交互,我想关闭我的应用程序,因此我已实现以下计时器,但计时器.cancel无法正常工作。它没有停止。因此应用程序崩溃 private static Timer mTimer1; private static TimerTask mTt1; private static Timer mTimer2; private static TimerTask mTt2; private static ApplicationPreferences mPrefernces = nu

如果用户在2分钟内未与应用程序交互,我想关闭我的应用程序,因此我已实现以下计时器,但计时器.cancel无法正常工作。它没有停止。因此应用程序崩溃

private static Timer mTimer1;
private static TimerTask mTt1;
private static Timer mTimer2;
private static TimerTask mTt2;
private static ApplicationPreferences mPrefernces = null;

public static void stopTimer() {
    Log.v("stoptimer", "stoptimer");
    if (mTimer1 != null) {
        mTimer1.cancel();
        mTimer1.purge();
        mTt1.cancel();
    }
}

public static void startTimer(final Activity context) {
    try {
        Log.v("startTimer", "startTimer");
        stopTimer();
        mTimer1 = new Timer();
        mTt1 = new TimerTask() {
            public void run() {
                context.runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        // show timeout popup when there no any interaction to user
                        showTimeoutPopup(context);
                    }
                });
            }
        };
        mTimer1.schedule(mTt1, 120000, 10000);
    } catch (Exception e) {
        Log.v("exception in starttimer", e.toString());
    }
}

您应该在startTimer中使用Log.vcontext.getClass.getSimpleName,Exception,e;但它不会影响..我想停止计时您需要从logcat显示崩溃日志。在您的代码中,启动计时器后,您不会在任何地方调用stopTimer。