直AppWidget意図した処理を再開
-
19-09-2019 - |
質問
私のAndroidアプリTransdroidには、複数のホーム画面にウィジェット.毎AppWidget2"ボタン'(ImageButton)のアプリもあり一部の活動などを更新しAppWidgetます。インターネットはモバイル. こちらの はスクリーンショット.ウィジェットコード私のGoogle Codeウェブサイト上で最も重要なのは:
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.appwidget_15);
views.setOnClickPendingIntent(R.id.widget_action, PendingIntent.getActivity(context, 0, new Intent(context, Transdroid.class), 0));
appWidgetManager.updateAppWidget(id, views);
問題は、ウィジェットの、その中の呼び出されることはありませんの後の処理の再起動を行っており、PendingIntents着するために使用される機能のボタンを喪失するものとする。
かなりやすく再現いたします。
- 開始エミュレータ
- ウィジェットを追加する使用PendingIntentるという、活動)
- ボタンをクリックで実際に作品
- 力で死んでしまうようホームproces('adb-eシェルkill96'が96のPIDのandroid.ます。acore)
- ウィジェットのボタンが動作しない。
より精度:なonReceiveこと、その中を要求されたときに呼び出されるのandroid.ます。acoreホーム処理を再開するして、意図が付属します。
誰もが経験したのと同じ問題を知っていてこれを避けるため問題なのか。
解決
私はちょうど私自身appwidgetsのカップルをテストしてみた、と彼らのクリックイベントはacoreを殺害した後、正常に動作します。ここに私の関連するコードがあります:
final RemoteViews views = new RemoteViews(context.getPackageName(), layoutId);
views.setOnClickPendingIntent(R.id.widget_view, PendingIntent.getActivity(
context,
0,
new Intent(context, MyActivity.class).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK),
PendingIntent.FLAG_UPDATE_CURRENT));
私が見ることができる主な違いは、意思関連フラグです。私は、彼らは間違いなく試してみる価値があると思います。 [私のコードでlayoutId
パラメータがelsewere設定されています。この同じコードが異なるレイアウトを有するいくつかのウィジェット]のために使用されます。
所属していません StackOverflow