2011-09-05 182 views
0

我是android和java開發的新手。目前,我得到一個小任務通知電池信息作爲部件Android BroadcastReceiver,getResultData()總是返回null

我曾經搜索過,發現了一段從電池中檢索信息的源代碼(http://www.tutorialforandroid.com/2009/01/getting-battery-information-on-android.html)。我試圖調整它的部件,但我有一個問題,關於BroadcastReceiver。 我試圖將電池電量值從BroadcastReceiver傳遞到RemoteViews。我找到了BroadcastReceiver對象的getResultData()方法,但我總是得到它的空值。

因此,我想建議將此BroadcastReceiver值傳遞給RemoteViews。

爲了使它更清晰,我在這裏添加了一段代碼。

public class MyBattery extends TimerTask { 
    RemoteViews remoteViews; 
    AppWidgetManager appWidgetmanager; 
    ComponentName thisWidget; 
    TextView contentTxt; 

    Context context; 
    public MyBattery(Context context, AppWidgetManager appWidgetManager){ 
     this.appWidgetmanager = appWidgetManager; 
     remoteViews = new RemoteViews(context.getPackageName(),R.layout.main); 
     thisWidget = new ComponentName(context,widgetTest.class); 
     this.context = context; 
    } 

    private BroadcastReceiver mBatInfoReceiver = new BroadcastReceiver(){ 

     @Override 
     public void onReceive(Context arg0, Intent intent){ 
      int level = intent.getIntExtra("level", 0); 

      contentTxt.setText(String.valueOf(level)+"%"); 
      this.setResultData(String.valueOf(level)+"%"); 
     } 
    }; 
    @Override 
    public void run() { 
     remoteViews.setTextViewText(R.id.battery_label,""+ this.mBatInfoReceiver.getResultData()); 
     appWidgetmanager.updateAppWidget(thisWidget, remoteViews); 

    } 


} 

回答

0

檢查本教程中,因爲它會幫助你在過BraodCastReceiver構建你的概念:

http://www.vogella.de/articles/AndroidServices/article.html

+0

感謝您的快速回復,但使用廣播接收器與活動這裏的例子。對我來說,我嘗試使用它的小部件。 – Fon

+0

我現在想通了。非常感謝! – Fon