アンドロイドで簡単なウィジェットをテストし、アラームを使用して定期的にTextViewを更新しています。問題は、BroadcastReceiverクラスで、アラームが切れたときに更新したいTextView要素にアクセスできないということです。トーストは適切なメッセージを与えているので、クラスは適切に呼び出されています。次のコードは、私がウィジェットを設定してタイマーを設定したクラスのコードです。BroadcastReceiverのTextView要素にアクセスする方法
public void onCreate(Bundle bundle) {
super.onCreate(bundle);
Intent intent = getIntent();
Bundle extras = intent.getExtras();
if(extras != null){
mWidgetId = extras.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID);
AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(WidgetConfigure.this);
RemoteViews views = new RemoteViews(WidgetConfigure.this.getPackageName(), R.layout.widget_layout);
views.setTextViewText(R.id.quote, "Widget Loaded From Activity");
appWidgetManager.updateAppWidget(mWidgetId, views);
setTimer(); //set the timers...
setResult();// set the result...
}
}
ここで、タイマーの期限が切れた後にBroadCastReceiverが呼び出されたときに同じTextViewを更新したいとします。私は、アンドロイドのapiデモで提供されているExampleAppWidgetの例で提供されているコードを試してみました。どのようにして必要なテキストを設定できますか?
私は(もアラームを設定する)は、上記された同一の活性を呼び出すが、TextViewの要素に別のテキストを設定することで別の方法にしたいです。だから私はこのアクティビティをBroadcastReceiverからどのように呼び出すことができるかを知る必要があります。 – ric03uec
私の更新を確認してください。ここでも、アクティビティと放送受信機は独立しています。あなたの受信機が呼び出されたとき、その活動は存在しないかもしれません。アクティビティでもブロードキャストが作成されます。 –
これは多くのこと..それを解決した – ric03uec