2013-11-25 2 views
0

Я хочу создать виджет, который автоматически обновляется через каждые 10 секунд, для этого я использую задачу таймера. его рабочий режим, но когда пользователь удаляет виджет, я хочу остановить таймер, чтобы сделать это, я помещаю код в «Удалить событие» в виджет, но его не работает. Я имею в виду, что он не останавливает таймер.Как остановить пользовательский таймер от виджета?

Вот мой код.

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);    
} 

ответ

0

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

Смежные вопросы