带有更新计时器的小部件

时间:2015-02-02 11:55:32

标签: android service android-widget android-broadcast

我需要在android中创建服务,它将每天运行几次并更新小部件中的数据。更新时间根据以前的更新进行设置。我不知道如何实现这一点。你能告诉我一些我需要做的事情和我需要使用的步骤。

1 个答案:

答案 0 :(得分:0)

使用Thread创建服务,如下所示:

public class UpdateService extends Service {
    private static UpdateThread updThread;

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        if (updThread == null) {
            updThread = new UpdateThread();
            updThread.start();
        } else {
            updThread.wakeUp();
        }
        return START_STICKY;        
    }

    public class UpdateThread extends Thread {  

        protected void waitFor(long time_ms) {
            try {
                synchronized(this) {
                    if (time_ms > 0) wait(time_ms);
                }
            } catch (InterruptedException e) {
                // pass
            }
        } 

        @Override
        public void run() {         
            while (mContinue) {
                // do your periodical code and widget update via broadcast intent here
                // time_in_ms is result of "previous update"
                waitFor(time_in_ms);
            }       
        }
    }

我希望这会对你有所帮助。