• Service详解


     1 /**
     2  *  后台执行的定时任务
     3  */
     4 public class LongRunningService extends Service {
     5 
     6     @Override
     7     public IBinder onBind(Intent intent) {
     8         return null;
     9     }
    10 
    11     @Override
    12     public int onStartCommand(Intent intent,int flags,int startId) {
    13     
    14         new Thread(){
    15             public void run() {
    16                 Log.i("TAG","LongRunningService exec at " + new Date().toString());
    17             };
    18         }.start();
    19         
    20         //获取Alarm管理对象
    21         AlarmManager manager = (AlarmManager)getSystemService(ALARM_SERVICE);
    22         
    23         //设置执行的时间间隔
    24         long triggerAtTime = SystemClock.elapsedRealtime() + 5 * 1000; 
    25         
    26         //获取一个能够执行广播的 PendingIntent。 这样当定时任务被触发的时候,广播接收器的 
    27          onReceive()方法就可以得到执行。
    28         Intent intent2 = new Intent(this,AlarmReceiver.class);
    29         PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent2, 0);
    30         
    31         //设置一个定时任务
    32         manager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, triggerAtTime, pendingIntent);
    34         return super.onStartCommand(intent,flags,startId);
    35     }
    36 }
    2 public class AlarmReceiver extends BroadcastReceiver {
    3     @Override
    4     public void onReceive(Context context,Intent intent) {
    5         Intent intent2 = new Intent(context, LongRunningService.class);
    6         context.startService(intent2);
    7     }
    8 }

     1 /**
     2  *  前台服务
     3  */
     4 public class ForegroundService extends Service {
     5 
     6     @Override
     7     public IBinder onBind(Intent intent) {
     8         return null;
     9     }
    10     
    11     @Override
    12     public void onCreate() {
    13         Intent intent = new Intent(this,MainActivity.class);
    14         PendingIntent pendingIntent = PendingIntent.getActivity(this,0,intent,0);
    15         
    16         Notification nf = new Notification(R.drawable.p1,"有一条通知",System.currentTimeMillis());
    18         nf.setLatestEventInfo(this,"这是通知的标题","这是通知的内容",pendingIntent);
    19         nf.flags = Notification.FLAG_AUTO_CANCEL;
    20         //调用这个方法将服务变为前台服务,并在系统通知栏显示出来
    21         startForeground(1,nf);
    22         
    23         super.onCreate();
    24     }
    25 }
  • 相关阅读:
    禁止ios10双指缩放
    使用uglifyjs压缩JS
    数组深拷贝的方法
    websocket具体如何使用
    订单支付倒计时-剩余时间xx小时xx分xx秒
    css--内凹圆角
    jQuery 演变史
    手机新闻网页
    [译文]此像素非彼像素,非彼像素
    函数有一个特殊的属性 prototype!
  • 原文地址:https://www.cnblogs.com/yangang2013/p/4937680.html
Copyright © 2020-2023  润新知