用AlarmManager和Service实现定时任务

在开发过程中,我们可能要每隔一段时间,去执行一次任务,我们就可以用AlarmManager和Service实现定时任务,比如说,每隔5秒钟,请求一次网络数据
MainActivity.java

package com.zhoujian.task.activity; import android.content.Intent; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import com.zhoujian.task.R; import com.zhoujian.task.service.MyService; public class MainActivity extends AppCompatActivity {@Override protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Intent intent = new Intent(MainActivity.this, MyService.class); startService(intent); } }

MyService.java

package com.zhoujian.task.service; import android.app.AlarmManager; import android.app.PendingIntent; import android.app.Service; import android.content.Context; import android.content.Intent; import android.os.IBinder; import android.os.SystemClock; import android.util.Log; /** * Created by zhoujian on 2017/3/23. */public class MyService extends Service {public static final String TAG = "MyService"; @Override public IBinder onBind(Intent intent) { return null; }@Override public int onStartCommand(Intent intent,int flags, int startId) { new Thread(new Runnable() { @Override public void run() { Log.i(TAG, "5秒后run()方法执行了!"); } }).start(); AlarmManager alarmManager = (AlarmManager)getSystemService(Context.ALARM_SERVICE); //5秒的时间 inttime = 1000*5; //获取系统开机至今所经历的毫秒 long startTime = SystemClock.elapsedRealtime()+time; Intent in= new Intent(this,MyService.class); PendingIntent pendingIntent = PendingIntent.getService(this,0,in,0); alarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP,startTime,pendingIntent); return super.onStartCommand(intent, flags, startId); }@Override public void onDestroy() { super.onDestroy(); } }

【用AlarmManager和Service实现定时任务】用AlarmManager和Service实现定时任务
文章图片

    推荐阅读