Java 为什么runnable在我的小部件中停止?

Java 为什么runnable在我的小部件中停止?,java,android,widget,runnable,traffic,Java,Android,Widget,Runnable,Traffic,我有以下代码更新我的文本查看总数据流量(MB)。首先,当您在屏幕上加载小部件时,它会运行,但随后会停止。 我用Log.d检查了Runnable,它停止了运行。为什么? 你能帮我吗 public class TdWidget extends AppWidgetProvider { private static long mStartRX = 0; private static Handler mHandler = new Handler(); RemoteViews remoteViews; A

我有以下代码更新我的文本查看总数据流量(MB)。首先,当您在屏幕上加载小部件时,它会运行,但随后会停止。 我用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);
    }
};

}

你能试一试吗如果我把你的问题说清楚的话

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

    }

};

它不起作用,其他方法无法解决。但是谢谢!!这行代码是从哪里来的。。另一种方法无法解决另一种方法;进入另一方,或在另一方私下无效;未重新查询时应为。我将其放入类中,并且在睡眠块中接受semi-collon after Log语句时没有错误。我可以执行您的代码,但它不起作用。日志没有显示任何错误。小部件在OneEnabled中停止,我不知道原因