初学Android 闹钟服务调用Service 六十九

高斋晓开卷,独共圣人语。这篇文章主要讲述初学Android 闹钟服务调用Service 六十九相关的知识,希望能为你提供帮助。
下面的例子是让AlarmManager定时调用某个Service,从而让系统实现定时更换壁纸的功能
界面非常简单

初学Android 闹钟服务调用Service 六十九

文章图片

先创建更换壁纸的服务类
 
package WangLi.Service.AlarmWallpaper; import android.app.Service; import android.app.WallpaperManager; import android.content.Intent; import android.os.IBinder; public class ChangeService extends Service { //定义定时更新的壁纸资源 int[] wallpapers = new int[] { R.drawable.shuangta, R.drawable.lijiang, R.drawable.qiao, R.drawable.shui }; //定义系统的壁纸管理服务 WallpaperManager wManager; //定义当前所显示的壁纸 int current = 0; @Override public void onStart(Intent intent,int startId) { //如果到了最后一张,系统重头开始 if(current > = 4) current = 0; try { //改变壁纸 wManager.setResource(wallpapers[current++]); } catch(Exception e) { e.printStackTrace(); } super.onStart(intent, startId); } @Override public void onCreate() { super.onCreate(); //初始化WallpaperManager wManager = WallpaperManager.getInstance(this); } @Override public IBinder onBind(Intent arg0) { // TODO Auto-generated method stub return null; } }


这里面用到了WallpaperManager这个类,是Android系统里面专门管理墙纸的类程序里面要加上设置墙纸的权限
 
< uses-permission android:name="android.permission.SET_WALLPAPER"/>

同时配置上这个service类 
< service android:name="ChangeService"> < /service>

接着在主界面调用这个服务 
package WangLi.Service.AlarmWallpaper; import android.app.Activity; import android.app.AlarmManager; import android.app.PendingIntent; import android.app.Service; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.Toast; public class AlarmChangeWallpaper extends Activity { // 定义AlarmManager对象 AlarmManager aManager; Button start, stop; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); start = (Button) findViewById(R.id.start); stop = (Button) findViewById(R.id.stop); aManager = (AlarmManager) getSystemService(Service.ALARM_SERVICE); // 指定启动ChangeService组件 Intent intent = new Intent(AlarmChangeWallpaper.this, ChangeService.class); // 创建PendingIntent对象 final PendingIntent pi = PendingIntent.getService( AlarmChangeWallpaper.this, 0, intent, 0); start.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // 设置每5秒执行pi代表的组件一次 aManager.setRepeating(AlarmManager.RTC_WAKEUP, 0, 5000, pi); start.setEnabled(false); stop.setEnabled(false); Toast.makeText(AlarmChangeWallpaper.this, "壁纸定时更换启动成功啦", 5000) .show(); } }); stop.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { start.setEnabled(true); stop.setEnabled(true); //取消对pi的调度 aManager.cancel(pi); } }); } }


成功设置后,壁纸是5秒更换一次,也可以停止更换的服务
初学Android 闹钟服务调用Service 六十九

文章图片





【初学Android 闹钟服务调用Service 六十九】再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow






    推荐阅读