app widget简单用法(3)

xiaoxiao2021-02-27  423

本文章是对我学习 android 过程中学到的知识进行汇总、整理、与分享。内容来源为 网络流传的视频、文章、android官方文档等。在此感谢那些在我学习过程中提供知识和帮助的无私的人。 上一篇我们讲了如何在 app widget 上添加按钮并实现了点击跳转 activity 的功能,但实际中点击 app widget 更多的是希望它发送广播,以便我们后台处理用户的点击意图。那么如何在 app widget 上设置监听并发送广播呢?接着上一篇的代码,我们继续。 1. 在 app widget 布局文件中添加一个按钮。 2. 为 MyAppWidgetProVider 注册 intent-filter 。 3. 使用 getBroadcast() 方法创建 PendingIntent 。 4. 为 app widget 的控件注册监听器。 5. 在 onReceive() 方法中接受广播消息。 是不是很熟悉?,其实前四个步骤上一篇已经详细的讲过了。 1. 在(res/Layout/  appwidget.xml )中添加一个 button。  <Button         android:id="@+id/appwidget_button2"         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:text="广播"/> 2. 在上一篇的 AndroidMainFest.xml 中添加一个 intent-filter: <intent-filter>                 <action                     android:name="test_appWidget_button"/> </intent-filter> 注意添加在上一篇写的那个 receive 的 intent-filter 的旁边,不要修改其他的内容 3.4. 依然是在 MyAppWidgetProvider 的 onUpdate() 方法中创建 监听: //创建带 action 的intent。这个 action 就是刚才自己定义的 action Intent _intent = new Intent(); _intent.setAction("test_appWidget_button"); //创建 PendingIntent ,里面存放 刚才创建的 intent 。 PendingIntent _pendingIntent = PendingIntent.getBroadcast(context, 0, _intent, 0); //得到RemoteViews实例。因为上一篇在代码(本段代码在上一篇代码下面)中已经得到了 RemoteViews 对象,可以直接再次使用,所以将其备注掉。 //RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.appwidget); //为 views 设置监听。  remoteViews.setOnClickPendingIntent(R.id.appwidget_button2, _pendingIntent); //最后更新一下控件内容(记得把上面那句相同代码注释掉。) appWidgetManager.updateAppWidget(appWidgetIds[i], remoteViews); 5. 在 MyAppWidgetProvider 的 onReceive() 方法中 判断接收到的 action : if(intent.getAction().equals("test_appWidget_button")){ Log.d("mybug","receiver is boardcast"); } 至此, app widget 按钮的监听 发送广播就已经实现。 以后会我做一个 app widget 的音乐播放器桌面,或 android桌宠 ?
转载请注明原文地址: https://www.6miu.com/read-2807.html

最新回复(0)