2015-09-11 2 views
0

У меня есть следующий код, который обновляет меня в TextView для общего трафика данных в MB. Сначала при загрузке виджета на экране запускается, а затем останавливается. Я проверил Runnable с Log.d, и он перестает работать. Зачем?. Вы можете мне помочь?Почему runnable останавливается в моем виджете?

public class TdWidget extends AppWidgetProvider { 

private static long mStartRX = 0; 
private static Handler mHandler = new Handler(); 
RemoteViews remoteViews; 
AppWidgetManager appWidgetManager; 
ComponentName thisWidget; 

public void init(Context context,AppWidgetManager appWidgetManager) 
{ 
    mStartRX = TrafficStats.getTotalRxBytes(); 
    remoteViews = new RemoteViews(context.getPackageName(), R.layout.main); 
    this.appWidgetManager = appWidgetManager; 
    thisWidget = new ComponentName(context, TdWidget.class); 

    mHandler.postDelayed(mRunnable, 1000); 
} 

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

private final Runnable mRunnable = new Runnable() { 
    public void run() { 

     Log.d("Runnable","*********RUNNABLE*******"); 
     float dwBytes = TrafficStats.getTotalRxBytes()- mStartRX; 
     float dwBytesf = dwBytes/1048576;   

     remoteViews.setTextViewText(R.id.txtshow, "MB Dwn= " + String.format("%.2f", dwBytesf)); 
     appWidgetManager.updateAppWidget(thisWidget, remoteViews); 

     mHandler.postDelayed(mRunnable, 1000); 
    } 
}; 

} 

ответ

0

Можете ли вы попробовать, если я четко и четко выполним ваш вопрос.

private final Runnable mRunnable = new Runnable() { 
    public void run() { 

     Log.d("Runnable","*********RUNNABLE*******"); 
     another(); 
    } 
    private void another(){ 
     float dwBytes = TrafficStats.getTotalRxBytes()- mStartRX; 
     float dwBytesf = dwBytes/1048576;   
     remoteViews.setTextViewText(R.id.txtshow, "MB Dwn= " + String.format("%.2f", dwBytesf)); 
     appWidgetManager.updateAppWidget(thisWidget, remoteViews); 

     try{ Thread.sleep(1000); }catch(Exception ex){ Log.e("Exception"," : "+ex.getMessage()) } 

     another(); 

    } 

}; 
+0

Не работает, другой способ не может быть разрешен. но спасибо!! – Garmael

+0

, где вы получили эту строку в коде .. «другой метод не может быть разрешен» –

+0

его синтаксис рабочего кода ... –