zoukankan      html  css  js  c++  java
  • 使用AlarmManager进行定时任务处理

    1:UploadingService.java

    package com.example.service;
    
    import com.example.broadcast.AlarmReceiver;
    import com.example.utils.DateUtil;
    
    import android.app.Activity;
    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;
    
    public class UploadingService extends Service{
    
        @Override
        public IBinder onBind(Intent intent) {
            return null;
        }
        
        @Override
        public int onStartCommand(Intent intent, int flags, int startId) {
            //to-do
            System.out.println("===========:"+DateUtil.getDateByFormat("yyyy-MM-dd HH:mm:ss"));
            
            AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);        
            int seconds = 1000*3;
            long triggerAtTime = SystemClock.elapsedRealtime()+seconds;
            Intent i = new Intent(this, AlarmReceiver.class);
            PendingIntent pi = PendingIntent.getBroadcast(this, 0, i, 0);
            am.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, triggerAtTime, pi);
            
            return super.onStartCommand(intent, flags, startId);
        }
    
        
        public static void openService(Context context){
            Intent intent = new Intent(context, UploadingService.class);
            ((Activity)context).startService(intent);
        }
    }

    2:AlarmReceiver.java

    package com.example.broadcast;
    
    import com.example.service.UploadingService;
    
    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.Intent;
    
    public class AlarmReceiver extends BroadcastReceiver{
    
        @Override
        public void onReceive(Context context, Intent intent) {
            Intent i = new Intent(context, UploadingService.class);
            context.startService(i);
        }
    }

    3:MainActivity.java

    UploadingService.openService(MainActivity.this);

    4:AndroidManifest.xml

    <service 
                android:name="com.example.service.UploadingService"/>
            <receiver 
                android:name="com.example.broadcast.AlarmReceiver"/>
  • 相关阅读:
    ZooKeeper基本原理
    ElasticSearch的基本原理与用法
    Solr与MySQL查询性能对比
    MySQL性能优化总结
    Java并发集合及线程池实现原理
    Java垃圾回收机制
    Java Spring的IoC和AOP的知识点速记
    基于Solr的空间搜索
    系统学习消息队列分享(十) 如何实现高性能的异步网络传输?
    系统学习消息队列分享(九) 如何使用异步设计提升系统性能?
  • 原文地址:https://www.cnblogs.com/yshyee/p/4083534.html
Copyright © 2011-2022 走看看