zoukankan      html  css  js  c++  java
  • 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 }
  • 相关阅读:
    一个简单的knockout.js 和easyui的绑定
    knockoutjs + easyui.treegrid 可编辑的自定义绑定插件
    Knockout自定义绑定my97datepicker
    去除小数后多余的0
    Windows Azure Web Site (15) 取消Azure Web Site默认的IIS ARR
    Azure ARM (1) UI初探
    Azure Redis Cache (3) 创建和使用P级别的Redis Cache
    Windows Azure HandBook (7) 基于Azure Web App的企业官网改造
    Windows Azure Storage (23) 计算Azure VHD实际使用容量
    Windows Azure Virtual Network (11) 创建VNet-to-VNet的连接
  • 原文地址:https://www.cnblogs.com/yangang2013/p/4937680.html
Copyright © 2011-2022 走看看