PendingIntent:
创建方法:
getActivity(Context, int, Intent, int),
getBroadcast(Context, int, Intent, int),
getService(Context, int, Intent, int);
RemoteViews的作用:
1.该对象表示了一系列的View对象。
2.RemoteViews所表示的对象运行在另外的进程中。
此项目接着http://yinger-fei.iteye.com/admin/blogs/1173658的创建小部件项目开始写。
这次程序功能:在App Widget中添加Button并实现监听。
1.向App Widget中添加Button
<Button android:id="@+id/widgetButtonId" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="測試用按鈕" />
2.为Button绑定处理器
注意:由于App Widget和应用程序运行在不同的进程中(App Widget中的view运行在Home Screen进程中),所以无法按之前惯用的方法绑定监听器。
remoteViews.setOnClickPendingIntent(R.id.widgetButtonId,pendingIntent);
在extends AppWidgetProvider的类中。实现onUpdate方法
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds) {
//ystem.out.println("onupdate");
for(int i=0;i<appWidgetIds.length;i++){
System.out.println(appWidgetIds[i]);
//创建一个Intent对象
Intent intent=new Intent(context,TargetActivity.class);
//创建一个PendingIntent
PendingIntent pendingIntent=PendingIntent.getActivity(context, 0, intent, 0);
RemoteViews remoteViews=new RemoteViews(context.getPackageName(),R.layout.example_appwidget);
//为按钮绑定事件处理器
//参数含义 1 被绑定控件的id 2 事件发生时,那个pendingintent被执行
remoteViews.setOnClickPendingIntent(R.id.widgetButtonId,pendingIntent);
//更新appwidget
//参数含义 1 被更新appwidgetid
appWidgetManager.updateAppWidget(appWidgetIds[i], remoteViews);
}
这里显示的效果就是点击button时,跳转到另外一个Activity。使用的是getActivity();