カスタム テキストを AppWidgetProvider に送信するインテントを呼び出すサービスがあります。このために、onRecieve メソッドを使用して、正しいアクションをチェックします。
2 つの質問があります。1 つ目はこれが正しい方法であるか、2 つ目は onReceive メソッドが呼び出されないのはなぜですか?
この次の部分にマニフェストを追加しました
<receiver android:label="KreativBarometer Widget"
android:name=".widget.MyWidgetProvider" >
<intent-filter >
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/widget_info" />
</receiver>
私の AppWidgetProvider は、次の onReceive メソッドを使用します
public void onReceive(Context context, Intent intent) {
if(intent.getAction().equals("APPWIDGET_UPDATE")){
String text = intent.getStringExtra("newItemArrived");
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget_layout);
views.setTextViewText(R.id.TextView01, text);
}
super.onReceive(context, intent);
}
そしてテストのために、私はこのインテントを使用します
Intent intent = new Intent("APPWIDGET_UPDATE");
intent.putExtra("newItemArrived", "Neue Frage erschienen");
sendBroadcast(intent);