AlarmManager组件定时器和定时器的使用

AlarmManager组件定时器:

https://blog.csdn.net/harryweasley/article/details/49531097

//      1,获取到AlarmManager
        AlarmManager systemService = (AlarmManager) getSystemService(ALARM_SERVICE);
//3设置service(要开启的那个组件)
Intent intent = new Intent(Main_mainActivity.this,Main_service.class);
                        PendingIntent service = PendingIntent.getService(Main_mainActivity.this, 110, intent, 119);
                        //请求码 标识骂
//2,设置重复执行
    systemService.setRepeating(AlarmManager.RTC_WAKEUP, 0, 3000, service);

每3000秒执行一次服务
通过这样就可以弄一个更换壁纸了
服务写

package content_text;

import java.io.IOException;

import com.example.aiqiyi_music.R;

import android.app.Service;
import android.app.WallpaperManager;
import android.content.Intent;
import android.os.IBinder;
import android.util.Log;

public class Main_service extends Service{

    private WallpaperManager instance;
    private int[] images;
    @Override
    public IBinder onBind(Intent intent) {
        // TODO Auto-generated method stub
        return null;
    }
    
@Override
public void onCreate() {
    // TODO Auto-generated method stub
    super.onCreate();
    //获取桌面壁纸管理器
    instance = WallpaperManager.getInstance(getApplicationContext());
    images = new int[] {R.drawable.timg,R.drawable.timg2,R.drawable.timg3};
    Log.e("tag", "onCreate");
}
int x=0;
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    // TODO Auto-generated method stub
    Log.e("tag", "onStartCommand");
    //动态设置背景图片
    try {
        instance.setResource(images[x]);
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    x++;
if(x>images.length){
        x=0;
    }
    return super.onStartCommand(intent, flags, startId);
}
@Override
public void onDestroy() {
    // TODO Auto-generated method stub
    Log.e("tag", "onDestroy");
    super.onDestroy();
}


}

注意要添加壁纸的权限


壁纸详细操作看
https://www.cnblogs.com/gszw/p/7712132.html

定时器

使用:


AlarmManager组件定时器和定时器的使用_第1张图片
image.png

还有timer.cancel取消定时器

你可能感兴趣的:(AlarmManager组件定时器和定时器的使用)