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"/>
  • 相关阅读:
    几个计算广告学的课程
    Jie Bao 牛人cv
    如果英剧《黑镜子》拍第三季,你来写一集剧本策划,你想写一个什么样的故事呢? 知乎
    设计模式之迭代器与组合模式
    javascript 时钟clock
    项目中的需求蔓延
    一个产生随机random markers 例子
    设计模式之模板方法模式
    设计模式之反(向)模式
    转:用函数式编程技术编写优美的 JavaScript
  • 原文地址:https://www.cnblogs.com/yshyee/p/4083534.html
Copyright © 2011-2022 走看看