我有一个简单按钮实现的小部件,只要我们点击一个按钮,它就会翻转给定的一组图像。现在,如果我想每5秒翻一次而不点击按钮,我该如何继续?如何定期更新小部件,每隔5秒后说一次
5
A
回答
2
Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
public void run() {
runOnUiThread(new Runnable() {
public void run() {
imageView.setImageBitmap(bitmap);
}
});
}
}, 5000, 5000);
第一次改变会在5秒后发生。
+1
我应该把这段代码放在android-widget的Provider或Service类中? – Atihska
5
首先,我强烈建议你不要每5秒更新一个小部件。它会立即杀死你的电池。
您可以在appwidget-provider中使用android:updatePeriodMillis属性。
在Android开发人员网站上查看Adding the AppWidgetProviderInfo Metadata。
事情是,为了保存电池,你不能设置30分钟以下的时间(1800000毫秒)。
设置完更新期后,您只需在AppWidgetProvider的onReceive()方法中定义行为。要做到这一点,你必须赶上ACTION_APPWIDGET_UPDATE事件。
@Override
public void onReceive(Context context, Intent intent) {
final String action = intent.getAction();
if (ACTION_APPWIDGET_UPDATE.equals(action)) {
// Update your widget here.
}
}
如果你真的要执行任务每5秒,你可以使用Timer和TimerTask类:
final Handler handler = new Handler();
Timer timer = new Timer();
TimerTask task = new TimerTask() {
@Override
public void run() {
handler.post(new Runnable() {
public void run() {
// send a broadcast to the widget.
}
});
}
};
timer.scheduleAtFixedRate(task, 0, 5000); // Executes the task every 5 seconds.
4
使用AlarmManager到tirgger关闭,将发出一个更新意图接收机报警。
这是一个很好的链接,它给出了一个例子。
http://www.parallelrealities.co.uk/2011/09/using-alarmmanager-for-updating-android.html
- 当插件被激活时,在微件服务,设置下一个5秒后报警。
- 该警报应发出一个PendingIntent,这会在5秒后触发您的服务。
- 在您的服务的onStartCommand中,触发小部件更新服务。
- 并在5秒后再次设置下一个警报。
注意:但是,5秒,真的太快了。它会很快耗尽你的电池,这取决于你在后台可能会做什么。请考虑减少更新次数。
相关问题
- 1. 每5秒更新一次Android小部件
- 2. Android Studio每5秒更新一次textview
- 3. 如何每5秒刷新一次webview
- 4. 如何每隔N秒刷新一次网页的一部分
- 5. 在5秒后显示div,然后每隔1分钟刷新一次div
- 6. 每10秒更新一次自我更新部件Handler.postDelayed问题
- 7. 如何每秒刷新小部件?
- 8. 每隔一秒刷新一次特定的html文件
- 9. ViewModel每秒更新一次?
- 10. 更新间隔小于1秒的速度每秒更新
- 11. 如何每秒更新一个Android小部件...用秒针画一个时钟?
- 12. 每隔5秒刷新一次D3生成的表格
- 13. 如何在nodejs中每隔5秒运行一次任务
- 14. 如何使PHP SQL SELECT语句每隔5秒查询一次?
- 15. 每5秒刷新一次jquery JSON
- 16. 如何每5秒发送一次HttpPost
- 17. 更新的Widget定期每一秒
- 18. 如何在jQuery的更新每隔秒
- 19. Knockout.js - 每5秒更新一次新页面的值
- 20. 如何每隔X秒自动刷新一次自动刷新?
- 21. 更新HttpResponse每隔几秒
- 22. 如何在winform上每隔n秒更新一次标签控件?
- 23. 如何每秒钟更新容器小部件中的标签小部件
- 24. 定时器执行期间每秒更新一次变量
- 25. 每5秒响应一次事件
- 26. 每2秒启动一次,每5秒启动一次
- 27. 自动刷新UpdatePanel每隔5秒
- 28. 如何在android中每秒更新小部件?
- 29. Datatables每5秒更新一列
- 30. 如何每隔5秒每次运行一个函数,并使用差值?
我需要一个服务吗? – Atihska