【问题标题】:system wallpaper should change through service系统壁纸应通过服务更改
【发布时间】:2011-10-28 07:12:33
【问题描述】:

我的应用程序需要一个在特定时间间隔内更改系统壁纸的服务我应该如何实现这个,请帮忙???

【问题讨论】:

  • 好问题,这对我来说也很有趣

标签: android service broadcastreceiver wallpaper


【解决方案1】:

创建你的服务类

class WallpaperService extends IntentService {

    @Override
    protected void onHandleIntent(Intent intent) {
        Timer progressTimer = new Timer();
        timeTask = new ProgressTimerTask();
        progressTimer.scheduleAtFixedRate(timeTask, 0, 1000);
    }

    private class ProgressTimerTask extends TimerTask {
        @Override
        public void run() {
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    int currenMinutes = 0; // set your time here
                    changeWallpapers(currentMinutes);
                }
            });
        }
    }

    private void changeWallpapers(int minutes) {
        if(minutes == 1)
            layout.setBackGround(Color.RED);
        if(minutes == 2)
            layout.setBackGround(Color.BLUE);
    }
}

}

然后在你想要的地方调用你的服务意图

【讨论】:

    【解决方案2】:

    嗯,我已经实现了这个功能。我在系统中注册了一个警报并将其连接到广播接收器。当BroadcastReceiver被触发时,在OnReceive()方法中可以为系统设置壁纸。

    【讨论】:

    • 我对@Huang 的回答投反对票的原因是,如果您每分钟或几小时甚至几秒再次触发警报,即警报在短时间内再次触发,并且您的应用程序发布在存储然后您将在开发者控制台中的应用程序上获得“不良行为”标志...改用服务! :)
    猜你喜欢
    • 2011-05-02
    • 1970-01-01
    • 2013-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-20
    • 1970-01-01
    相关资源
    最近更新 更多