如何从小部件停止自定义计时器?

时间:2013-11-25 11:26:31

标签: android android-widget

我想创建一个每10秒后自动更新的小部件来执行此操作我使用Timer Task。它工作正常,但当用户删除小部件我想停止计时器这样做我把代码放在小部件中的删除事件,但它不工作,我的意思是它没有停止计时器。

这是我的代码。

Timer timer1;

private TimerTask updatedTimer;

@Override
public void onDeleted(Context context, int[] appWidgetIds) {
    // TODO Auto-generated method stub
    // super.onDeleted(context, appWidgetIds);
    setCategory(PreferenceData.KEY_CATEGORY, context, "");
    try {
        timer1.cancel();            
        updatedTimer.cancel();
    } catch (Exception e) {
        // TODO: handle exception
        Log.e("OnDelete",""+e.toString());
    }
}

    @Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
        int[] appWidgetIds) {


    remoteViews = new RemoteViews(context.getPackageName(), R.layout.main);

     mIntent = new Intent(context, DetailsHeadlinesActivity.class);
     pendingIntent = PendingIntent.getActivity(context, 0, mIntent,0);

    timer1 = new Timer();
    updatedTimer= new MyTime(context, appWidgetManager);
    timer.scheduleAtFixedRate(updatedTimer, 1, 10000);              
}

1 个答案:

答案 0 :(得分:0)

也许你可以从(自定义?)Timer到Widget的状态进行观察,并在Widget被禁用时取消定时器(使用一些应用程序级变量?)。