首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

Mars视频札记——AppWidget(2)基础交互

2012-06-28 
Mars视频笔记——AppWidget(2)基础交互?AppWidget(2)控件监听器绑定什么是PendingIntentPendingIntent创建之

Mars视频笔记——AppWidget(2)基础交互

?

AppWidget(2)控件监听器绑定

什么是PendingIntent

PendingIntent创建之后并不马上使用 PendingIntent将实际Intent包裹其中

AppWidget和应用程序运行在2个进程中

进程A将PendingIntent交给进程B 当B中发生某事件 则其中的Intent被执行

?

创建PendingIntent的方法 (PendingIntent类的静态方法)

1 getActivity(...)

2 getBroadcast(...)

3 getService(...)

RemoteViews的作用

RemoteViews对象表示了一系列的View对象(非应用程序同一进程的)

RemoteViews所表示的对象运行在另外的进程当中

AppWidget对于Activity就是一个RemoteViews

?

在AppWidget中使用控件

在ApppWidget中添加控件 例如一个Button 在layout中声明

为Button绑定处理器

AppWidget和应用程序不在同一进程中 要用:

remoteViews.setOnClickPendingIntent(R.id.widgetButtonId,pendingIntent);

?

主要在onUpdate方法中 其中有一个参数int[] appWidgetId 是桌面上创建的widget

?

// 1 创建一个IntentIntent intent = new Intent(context,TargetActivity.class);// 2 创建一个PendingIntentPendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);// 3 得到RemoteViewsRemoteViews remoteViews = new RemoteViews(context.getPackageName(),R.layout.example_appwidget);// 4 设置事件 绑定处理器 第一个参数是被绑定处理器控件的ID 第二个为动作remoteViews.setOnClickPendingIntent(R.id.widgetButtonId, pendingIntent);// 5 更新AppWidget 第一个参数指定更新哪一个 第二个参数为更新的控件appWidgetManager.updateAppWidget(appWidgetIds[i],remoteViews);
?

?

最终实现的是AppWidget上点击一个Button 跳转到TargetActivity

?

热点排行