初学Android,闹钟服务调用Service(六十九)
2012-10-16 14:28
549 查看
下面的例子是让AlarmManager定时调用某个Service,从而让系统实现定时更换壁纸的功能
界面非常简单
先创建更换壁纸的服务类
这里面用到了WallpaperManager这个类,是Android系统里面专门管理墙纸的类
程序里面要加上设置墙纸的权限
成功设置后,壁纸是5秒更换一次,也可以停止更换的服务
界面非常简单
先创建更换壁纸的服务类
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)内方法
- Android 服务(service)的生命周期以及利用bindservice调用服务里面的方法
- 初学Android,手机闹钟服务(六十八)
- android服务_通过bindService调用服务里的方法
- android_58_service_remote_AIDL调用远程服务
- android bindService 来调用服务中的方法
- 18_Android中Service的生命周期,远程服务,绑定远程服务,aidl服务调用,综合服务案例,编写一个应用程序调用远程支付宝远程服务场景
- android基础笔记:服务(Service) 采用接口的方式调用本地服务的方法
- Android Service AIDL 远程调用服务之简单音乐播放实例【转载】
- 简单音乐播放实例的实现,Android Service AIDL 远程调用服务
- android90 bind方式启动服务service调用service里的方法
- android servicelifecycle 服务的生命周期和程序内部调用服务
- Android -- service的开启方式, start开启和绑定开启服务,调用服务的的方法, aidl调用远程服务
- Android Service AIDL 远程调用服务 【简单音乐播放实例】
- Android中Service的生命周期,远程服务,绑定远程服务,aidl服务调用
- 调用android非unbind的服务中的方法(不使用bindService启动的服务)
- Android Service 调用远程服务中的方法
- Android通过bindservice方式调用服务的方法
- 初学Android,手机闹钟服务(六十八)