Android App ウィジェット ボタンを押して処理をする

App ウィジェットを作成してみたので、ウィジェットのボタンを押したら、メッセージを表示させてみたメモ。

  1. package info.typea.eitangoroid;
  2.  
  3. import info.typea.eitangoroid.pro.R;
  4.  
  5. import android.app.PendingIntent;
  6. import android.app.Service;
  7. import android.appwidget.AppWidgetManager;
  8. import android.appwidget.AppWidgetProvider;
  9. import android.content.ComponentName;
  10. import android.content.Context;
  11. import android.content.Intent;
  12. import android.os.IBinder;
  13. import android.util.Log;
  14. import android.widget.RemoteViews;
  15.  
  16. public class FlippadWidgetProvider extends AppWidgetProvider {
  17. @Override
  18. public void onUpdate(Context context, AppWidgetManager appWidgetManager,int[] appWidgetIds) {
  19. for (int i=0; i<appWidgetIds.length; i++) {
  20. Intent intent = new Intent(context, WidgetService.class);
  21. PendingIntent pendingIntent = PendingIntent.getService(context, 0, intent, 0);
  22. RemoteViews rv = new RemoteViews(context.getPackageName(), R.layout.flippad_widget);
  23. rv.setOnClickPendingIntent(R.id.btn_showmessage, pendingIntent);
  24. appWidgetManager.updateAppWidget(appWidgetIds[i], rv);
  25. }
  26. }
  27.  
  28. public static class WidgetService extends Service {
  29. @Override
  30. public void onStart(Intent intent, int startId) {
  31. RemoteViews rv = new RemoteViews(getPackageName(), R.layout.flippad_widget);
  32. rv.setTextViewText(R.id.txt_message, "message!!");
  33. ComponentName thisWidget = new ComponentName(this, FlippadWidgetProvider.class);
  34. AppWidgetManager manager = AppWidgetManager.getInstance(this);
  35. manager.updateAppWidget(thisWidget, rv);
  36. }
  37.  
  38. @Override
  39. public IBinder onBind(Intent intent) {
  40. return null;
  41. }
  42. }
  43. }

Follow me!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です