Android App ウィジェット ボタンを押して処理をする
App ウィジェットを作成してみたので、ウィジェットのボタンを押したら、メッセージを表示させてみたメモ。
package info.typea.eitangoroid; import info.typea.eitangoroid.pro.R; import android.app.PendingIntent; import android.app.Service; import android.appwidget.AppWidgetManager; import android.appwidget.AppWidgetProvider; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.os.IBinder; import android.util.Log; import android.widget.RemoteViews; public class FlippadWidgetProvider extends AppWidgetProvider { @Override public void onUpdate(Context context, AppWidgetManager appWidgetManager,int[] appWidgetIds) { for (int i=0; i<appWidgetIds.length; i++) { Intent intent = new Intent(context, WidgetService.class); PendingIntent pendingIntent = PendingIntent.getService(context, 0, intent, 0); RemoteViews rv = new RemoteViews(context.getPackageName(), R.layout.flippad_widget); rv.setOnClickPendingIntent(R.id.btn_showmessage, pendingIntent); appWidgetManager.updateAppWidget(appWidgetIds[i], rv); } } public static class WidgetService extends Service { @Override public void onStart(Intent intent, int startId) { RemoteViews rv = new RemoteViews(getPackageName(), R.layout.flippad_widget); rv.setTextViewText(R.id.txt_message, "message!!"); ComponentName thisWidget = new ComponentName(this, FlippadWidgetProvider.class); AppWidgetManager manager = AppWidgetManager.getInstance(this); manager.updateAppWidget(thisWidget, rv); } @Override public IBinder onBind(Intent intent) { return null; } } }