作者darkk6 (Mr. Pan)
看板AndroidDev
标题[问题] Widget 的 onUpdate
时间Fri May 24 00:15:28 2013
大家好,最近再做一个 widget , 但对於 widget 有一些小问题想请问
想先请大家帮我看一下这样写对不对:
在 Widget 上要绑定按钮的 Click 事件,采用 remoteViews 的
setOnClickPendingIntent , 设定 PendingIntent 的 action String
并在 AndroidManifest.xml 定义 intent-filter 去接收,然後
在 onReceive 的地方做判断,如:
// rv 是 RemoteViews 这段 Code 我是写在 onUpdate() 里面
Intent intent=new Intent("
BTN_ACTION_STRING");
PendingIntent pendInt;
pendInt=PendingIntent.getBroadcast(context, 0, intent, 0);
rv.setOnClickPendingIntent(R.id.btn,pendInt);
//接着再 updateAppWidget 就不写了
[AndroidManifest.xml]
<receiver android:name=".MyWidget" android:label="@string/app_name">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
<action android:name="
BTN_ACTION_STRING"></action>
</intent-filter>
<meta-data android:name="android.appwidget.provider"
android:resource="@xml/widget_provider"/>
</receiver>
不过有时候会发生,过太久没动还是什麽的,造成 Widget 按钮都没反应
个人觉得可能是 AppWidgetProvider 被系统 GC 掉了?
想请问大家要如何避免这个问题?
还有, onUpdate 到底触发的时机是甚麽时候?
我在 widget_provider.xml 设定updateperiodmillis = 1000 (这样是一秒吧?)
onUpdate 做 Log.d , 但似乎没有每秒钟都出现
最後是~ 我需不需要在 onReceive 的地方判断
android.appwidget.action.APPWIDGET_UPDATE
的 action 去做 update 之类的呢?
主要是要解决有时候 widget 按钮会失效的问题
感谢大家~
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.171.115.187
1F:→ gpc:xml写的时间周期不可用 他会被framework覆盖掉 05/24 02:34
2F:→ gpc:有可能会被调整到30分钟一次 要周期更新 请爱用 alarm 即可 05/24 02:35
3F:→ darkk6:alarm 好用!! 感谢~ 那麽有时按钮会失效的问题,我是不是 05/24 03:33
4F:→ darkk6:只要定时去 update widget 重新 bind PendingIntent 就 05/24 03:33
5F:→ darkk6:可以解决了呢~ ? 05/24 03:33
6F:→ asilzheng:你的 widget 怎麽更新的 每次都有 bind PendingIntent? 05/24 09:03
7F:→ asilzheng:不然应该只是没按到? 05/24 09:04