ウィジェットをクリックしてダイアログボックスを開くことができます。公式の文書を非公式のものとして読んだことがあります。私は当初は新しい活動を開始したかったのですが、それでも失敗しました。私はLogcatで次のようになりますが、実際には何も見えません。Android Widget onClick
11-14 21:28:47.929: INFO/ActivityManager(116): Starting: Intent { flg=0x10000000 cmp=com.android.app/.Execute bnds=[179,89][300,160] } from pid -1
上記のことは、意図が合格したことを意味すると思います...しかし、実際にはアクティビティは開始されませんでした。開始されるべき活動が通常の活動であるべきか?
使用されるコードは次のとおりです。
public class ExampleAppWidgetProvider extends AppWidgetProvider {
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
final int N = appWidgetIds.length;
// Perform this loop procedure for each App Widget that belongs to this provider
for (int i=0; i<N; i++) {
int appWidgetId = appWidgetIds[i];
// Create an Intent to launch ExampleActivity
Intent intent = new Intent(context, ExampleActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);
// Get the layout for the App Widget and attach an on-click listener
// to the button
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.appwidget_provider_layout);
views.setOnClickPendingIntent(R.id.button, pendingIntent);
// Tell the AppWidgetManager to perform an update on the current app widget
appWidgetManager.updateAppWidget(appWidgetId, views);
}
}
}
任意の考え?
これで運を?私もそれを観察している。私もこれを見ています。私が自分のアプリケーションの1つから通知したアクティビティを起動しようとしたときです。 -1と表示されているプロセスIDと関係があると思います。 通常、インテントによって他のアクティビティが起動されると、プロセスIDは-1ではなく、OSによって割り当てられた別の番号になります。 –
問題は解決されました.. pidは-1とは関係ありませんでした。私の実際の問題は、私のコードでtypoがあったということでした。 "XYZActivity"と入力する代わりに、 "XYZACtivity"大文字のC)、それは文字列として指定されて以来、Androidによって投げられたエラーはありませんでした。おそらくあなたの場合も同様のものがありますか? –
それで、-1は何についてですか?あなたが始めたいアクティビティのスペルが間違っていたことを意味しますか?私はスペルミスを見ません。ウィジェットクリックで起動されるアクティビティが意図をどのように扱うのか?それともこれは無関係ですか? – JustCurious