android – 如何定期更新小部件,比如每5秒后更新一次

我有一个带有简单按钮实现的小部件,每当我们点击一​​个按钮时,它就会翻转一组给定的图像.现在,如果我想在没有点击按钮的情况下每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秒执行一次任务,可以使用TimerTimerTask类:

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,5000); // Executes the task every 5 seconds.

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...