大佬教程收集整理的这篇文章主要介绍了android – 如何在午夜更新应用小部件?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
<manifest> ... <application> ... <receiver android:name=".MyWidgetProviderClass" android:label="MyLabel" > <intent-filter> <action android:name="android.appwidget.action.APPWIDGET_UPDATE" /> </intent-filter> <Meta-data android:name="android.appwidget.provider" android:resource="@xml/widget_icon_info" /> </receiver> </application> </manifest>
小部件信息文件是
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android" android:initialLayout="@layout/my_layout" android:minHeight="40dp" android:minWidth="294dp" android:updatePeriodMillis="3600000" > </appwidget-provider>
这会导致小部件在午夜和下午1点之间的任何时间更新,但我想更新到更接近午夜,所以我在应用程序中添加了一个意图接收器
<receiver android:name=".MyWidgetUpdaterClass" android:enabled="true" > <intent-filter> <action android:name="MyAction" /> </intent-filter> </receiver>
和静态方法
public static void setMidngintAlarms(Context context) { Intent intent = new Intent("MyAction"); PendingIntent pendingIntent = PendingIntent.getBroadcast(context,intent,0); long interval = 24*60*60*1000; long firstTime = SystemClock.elapsedRealtime() + millisecondsToNextMidnight(); AlarmManager am = (AlarmManager)context.getSystemService( Context.ALARM_SERVICE); am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP,firstTime,interval,pendingIntent); }
(因为警报管理器以相同的意图请求相互覆盖,所以多次调用setMidngintAlarms没有坏处).
我尝试从几个地方(从应用程序的主要活动,从appwidgetprovider的onUpdate()等)调用setMidnightAlarms().一切运行良好,接收到警报管理器意图,并且只有应用程序运行时才更新窗口小部件.如果我杀了应用程序,小部件会在午夜停止更新.
知道如何让小部件在午夜更新吗?我需要添加服务吗?如果是这样的话?任何例子?
>启动服务以侦听Intent.ACTION_TIME_TICK消息.
然后,如果Time TICKED,则向小部件发送广播. (每分钟).
>接收小部件中的广播,并通过以下方式判断天气是午夜:
码:
if (MyWidget.BROADCAST_TIME_TICK.equals(action)) { //If it's midnight,then update. int hour = Calendar.getInstance().get(Calendar.HOUR); int minute = Calendar.getInstance().get(Calendar.MINUTE); Utils.log(TAG,"time is : " + hour+":" + minute); if (!(hour == 0 && minute == 0)) { //Only update at midnight's time tick. return; } else { //Do the midnight stuff. } }
以上是大佬教程为你收集整理的android – 如何在午夜更新应用小部件?全部内容,希望文章能够帮你解决android – 如何在午夜更新应用小部件?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。