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"/>
  • 相关阅读:
    Vue生命周期总结
    jQuery的层级选择器
    jQuery操作DOM的相关方法
    PHP基本语法
    组件间的传值
    MV*模式
    js 常用事件
    kali使用-WIFI破解
    使用css将网页变成黑白色
    css权重等级
  • 原文地址:https://www.cnblogs.com/yshyee/p/4083534.html
Copyright © 2011-2022 走看看