Android 系统墙纸应通过服务更改

Android 系统墙纸应通过服务更改,android,service,broadcastreceiver,wallpaper,Android,Service,Broadcastreceiver,Wallpaper,我的应用程序需要在特定时间间隔内更改系统墙纸的服务。我应该如何实现此功能,请提供帮助?我已经实现了此功能。我在系统中注册了一个警报,并将其连接到广播接收器。触发BroadcastReceiver时,在OnReceive()方法中,您可以为系统设置墙纸。好的,我已经实现了这个功能。我在系统中注册了一个警报,并将其连接到广播接收器。触发BroadcastReceiver后,在OnReceive()方法中,您可以为系统设置墙纸。创建您的服务类 class WallpaperService extend

我的应用程序需要在特定时间间隔内更改系统墙纸的服务。我应该如何实现此功能,请提供帮助?

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

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

创建您的服务类

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);
    }
}
}


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

创建服务类

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);
    }
}
}


然后在你想要的地方打电话给你的服务意向

好问题,这个对我来说有趣的问题,这个对我来说有趣的问题我否决了@Huang的答案的原因是,如果您每分钟、几小时甚至几秒钟触发一次警报,即警报在短时间内再次触发,并且您的应用程序已在应用商店中发布,则您将在开发人员控制台中的应用程序上显示“不良行为”标志。。。改用服务!:)我否决@Huang回答的原因是,如果你每分钟、几小时甚至几秒钟再次触发警报,即警报在短时间内再次触发,你的应用程序在应用商店上发布,那么你会在开发者控制台上的应用程序上看到“不良行为”标志。。。改用服务!:)