首先,添加带有常量的静态变量。
public static String YOUR_AWESOME_ACTION = "YourAwesomeAction";
然后,你需要先将动作添加到意图中,然后再将意图添加到未决意图中:
Intent intent = new Intent(context, widget.class);
intent.setAction(YOUR_AWESOME_ACTION);
(其中widget.class是你的appwidgetprovider的类,当前的类)
然后,你需要使用getBroadcast创建一个PendingIntent
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, 0);
在窗口小部件中为可点击的视图设置onClickPendingIntent
remoteView.setOnClickPendingIntent(R.id.widgetFrameLayout, pendingIntent);
接下来,在同一类中重写onReceive方法:
@Override
public void onReceive(Context context, Intent intent) {
super.onReceive(context, intent);
然后通过在onReceive方法中查询为你的操作返回的意图来响应你的按钮按下:
if (intent.getAction().equals(YOUR_AWESOME_ACTION)) {
//do some really cool stuff here
}
那应该做到的!