• 使用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"/>
  • 相关阅读:
    每种特定的迭代器如何使用
    常量迭代器
    容器迭代器
    三十分钟掌握STL
    高快省的排序算法
    FloatTest32 Example
    /浮点数的比较
    java第一天
    ACwing 898
    POJ 3268
  • 原文地址:https://www.cnblogs.com/yshyee/p/4083534.html
Copyright © 2020-2023  润新知