Просмотр исходного кода

Apex & drivers
修改推送消息列表,分为后台刷新和前台刷新,前台刷新频度更高

Ray Zhang 7 лет назад
Родитель
Сommit
852046c961

+ 2 - 1
ApexDrivers/RAUtilsLibrary/src/main/java/com/usai/redant/rautils/receiver/AlarmReceiver.java

@@ -5,7 +5,8 @@ import android.content.Intent;
 import android.util.Log;
 import android.util.Log;
 
 
 public abstract class AlarmReceiver extends BootCompleteBroadcastReceiver {
 public abstract class AlarmReceiver extends BootCompleteBroadcastReceiver {
-    protected  int alarm_timeInterval = 30 * 1000;
+    protected  int normal_alarm_timeInterval = 120 * 1000;
+    protected  int aggressive_alarm_timeInterval = 15 * 1000;
 
 
 //    protected static final int	SO_TIMEOUT						= 15 * 1000;
 //    protected static final int	SO_TIMEOUT						= 15 * 1000;
 
 

+ 4 - 2
ApexDrivers/RAUtilsLibrary/src/main/java/com/usai/redant/rautils/service/RAService.java

@@ -50,6 +50,8 @@ public abstract class RAService extends Service {
 
 
     private static final String TAG = "RAService";
     private static final String TAG = "RAService";
 
 
+    protected static  String CHANNEL_ID = "RAService";
+    protected static  String CHANNEL_NAME = "RAService";
     public static final int DEFAULT_LOCATION_TIMEINTERVAL = 30 * 1000;
     public static final int DEFAULT_LOCATION_TIMEINTERVAL = 30 * 1000;
 //    public static final int DEFAULT_DISTANCE = 0 * 50;
 //    public static final int DEFAULT_DISTANCE = 0 * 50;
     public static final int DEFAULT_PUSHNOTIFICATION_TIMEINTERVAL = 30 * 1000;
     public static final int DEFAULT_PUSHNOTIFICATION_TIMEINTERVAL = 30 * 1000;
@@ -522,8 +524,8 @@ public abstract class RAService extends Service {
         super.onCreate();
         super.onCreate();
 
 
         if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
         if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
-            String CHANNEL_ID = "apex & driver";
-            String CHANNEL_NAME = "Background Service";
+//            String CHANNEL_ID = "apex & driver";
+//            String CHANNEL_NAME = "Background Service";
 
 
             NotificationChannel channel = new NotificationChannel(CHANNEL_ID,
             NotificationChannel channel = new NotificationChannel(CHANNEL_ID,
                     CHANNEL_NAME, NotificationManager.IMPORTANCE_NONE);
                     CHANNEL_NAME, NotificationManager.IMPORTANCE_NONE);

+ 81 - 11
ApexDrivers/app/src/main/java/com/usai/redant/apexdrivers/ApexDriverApplication.java

@@ -1,49 +1,46 @@
 package com.usai.redant.apexdrivers;
 package com.usai.redant.apexdrivers;
 
 
+import android.app.Activity;
 import android.app.Application;
 import android.app.Application;
+import android.content.BroadcastReceiver;
 import android.content.ComponentName;
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.Context;
 import android.content.DialogInterface;
 import android.content.DialogInterface;
 import android.content.Intent;
 import android.content.Intent;
+import android.content.IntentFilter;
 import android.content.ServiceConnection;
 import android.content.ServiceConnection;
 import android.content.SharedPreferences;
 import android.content.SharedPreferences;
-import android.graphics.Bitmap;
-import android.graphics.BitmapFactory;
-import android.graphics.drawable.BitmapDrawable;
-import android.graphics.drawable.Drawable;
 import android.location.Location;
 import android.location.Location;
 import android.os.Build;
 import android.os.Build;
+import android.os.Bundle;
 import android.os.IBinder;
 import android.os.IBinder;
 import android.support.v7.app.AlertDialog;
 import android.support.v7.app.AlertDialog;
 import android.text.TextUtils;
 import android.text.TextUtils;
 import android.util.Log;
 import android.util.Log;
-import android.widget.Switch;
 
 
 import com.usai.redant.apexdrivers.network.Network;
 import com.usai.redant.apexdrivers.network.Network;
 import com.usai.redant.apexdrivers.receiver.ApexDriverAlarmReceiver;
 import com.usai.redant.apexdrivers.receiver.ApexDriverAlarmReceiver;
 import com.usai.redant.apexdrivers.utils.OperationQueue;
 import com.usai.redant.apexdrivers.utils.OperationQueue;
 import com.usai.redant.rautils.receiver.RABroadcast;
 import com.usai.redant.rautils.receiver.RABroadcast;
 import com.usai.redant.rautils.utils.AESUtil;
 import com.usai.redant.rautils.utils.AESUtil;
-import com.usai.redant.rautils.utils.FileManager;
-import com.usai.redant.rautils.utils.ImageUtil;
 import com.usai.redant.rautils.utils.RAUtil;
 import com.usai.redant.rautils.utils.RAUtil;
 
 
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.InputStream;
-import java.io.OutputStream;
 import java.lang.reflect.Field;
 import java.lang.reflect.Field;
 
 
 public class ApexDriverApplication extends Application {
 public class ApexDriverApplication extends Application {
 
 
     public final static String secretKey = "usai";
     public final static String secretKey = "usai";
     public final static String preferencesKey = "Apex";
     public final static String preferencesKey = "Apex";
+    public static final String CHANNEL_ID = "Apex & Drivers";
+    public static final String CHANNEL_NAME = "Apex & Drivers";
+
     private static ApexDriverApplication mApp;
     private static ApexDriverApplication mApp;
 
 
     public String user;
     public String user;
     public String password;
     public String password;
     private volatile long notificationID;
     private volatile long notificationID;
 
 
+    public boolean isbackground=true;
 
 
     public final static int BackgroundReportTypeNone = 0;
     public final static int BackgroundReportTypeNone = 0;
     public final static int BackgroundReportTypeReject = 1;
     public final static int BackgroundReportTypeReject = 1;
@@ -57,13 +54,85 @@ public class ApexDriverApplication extends Application {
     private ApexDriversBackgroundService mService;
     private ApexDriversBackgroundService mService;
     private boolean mRequiredLocation = false;
     private boolean mRequiredLocation = false;
 
 
+
     private OperationQueue networkQueue;
     private OperationQueue networkQueue;
 
 
+    private BroadcastReceiver screen_event_receiver = new BroadcastReceiver() {
+        @Override
+        public void onReceive(Context context, Intent intent) {
+//            if (isbackground) {
+                isbackground = true;
+
+//            }
+        }
+    };
+
+    private ActivityLifecycleCallbacks activitylcCallbacks =new ActivityLifecycleCallbacks() {
+        @Override
+        public void onActivityCreated(Activity activity, Bundle bundle) {
+
+        }
+
+        @Override
+        public void onActivityStarted(Activity activity) {
+
+        }
+
+        @Override
+        public void onActivityResumed(Activity activity) {
+
+            if(isbackground==true)
+            {
+                isbackground = false;
+                //notification
+                Log.d("ApexDriverApplication", "onCreate: SEND" + RABroadcast.ACTION_REDANT_INIT_ALARM);
+                Intent bintent = new Intent(RABroadcast.ACTION_REDANT_INIT_ALARM);
+                bintent.setClass(ApexDriverApplication.this, ApexDriverAlarmReceiver.class);
+//        bintent.putExtra("msg", msg.toString());
+                sendBroadcast(bintent);
+            }
+//            isbackground = false;
+        }
+
+        @Override
+        public void onActivityPaused(Activity activity) {
+
+        }
+
+        @Override
+        public void onActivityStopped(Activity activity) {
+
+        }
+
+        @Override
+        public void onActivitySaveInstanceState(Activity activity, Bundle bundle) {
+
+        }
+
+        @Override
+        public void onActivityDestroyed(Activity activity) {
+
+        }
+    };
+
+    @Override
+    public void onTrimMemory(int level)
+    {
+        super.onTrimMemory(level);
+        if (level == TRIM_MEMORY_UI_HIDDEN) {
+            isbackground = true;
+
+        }
+    }
     @Override
     @Override
     public void onCreate() {
     public void onCreate() {
         Log.d("ApexDriverApplication", "onCreate");
         Log.d("ApexDriverApplication", "onCreate");
         super.onCreate();
         super.onCreate();
 
 
+        IntentFilter screenOffFilter = new IntentFilter(Intent.ACTION_SCREEN_OFF);
+        registerReceiver(screen_event_receiver, screenOffFilter);
+
+        registerActivityLifecycleCallbacks(activitylcCallbacks);
         mApp = this;
         mApp = this;
 
 
         try {
         try {
@@ -137,6 +206,7 @@ public class ApexDriverApplication extends Application {
     public void onTerminate() {
     public void onTerminate() {
         super.onTerminate();
         super.onTerminate();
 
 
+        unregisterActivityLifecycleCallbacks(activitylcCallbacks);
         unbindService(mServiceConnection);
         unbindService(mServiceConnection);
     }
     }
 
 

+ 2 - 0
ApexDrivers/app/src/main/java/com/usai/redant/apexdrivers/ApexDriversBackgroundService.java

@@ -24,6 +24,8 @@ public class ApexDriversBackgroundService extends RAService implements RAService
     protected void Setup() {
     protected void Setup() {
 //        service_flag=FLAG_SERVICE_UPLOAD|FLAG_SERVICE_NOTIFICATION|FLAG_SERVICE_LOCATION;
 //        service_flag=FLAG_SERVICE_UPLOAD|FLAG_SERVICE_NOTIFICATION|FLAG_SERVICE_LOCATION;
 
 
+        CHANNEL_ID=ApexDriverApplication.sharedApplication().CHANNEL_ID;
+        CHANNEL_NAME=ApexDriverApplication.sharedApplication().CHANNEL_NAME;
         initServiceLocation(this);
         initServiceLocation(this);
 //        initServiceNotification(this,"replace this string with notification checking url");
 //        initServiceNotification(this,"replace this string with notification checking url");
         initServiceUpload(this);
         initServiceUpload(this);

+ 11 - 2
ApexDrivers/app/src/main/java/com/usai/redant/apexdrivers/receiver/ApexDriverAlarmReceiver.java

@@ -8,18 +8,23 @@ import android.os.Build;
 import android.os.SystemClock;
 import android.os.SystemClock;
 import android.util.Log;
 import android.util.Log;
 
 
+import com.usai.redant.apexdrivers.ApexDriverApplication;
 import com.usai.redant.rautils.receiver.AlarmReceiver;
 import com.usai.redant.rautils.receiver.AlarmReceiver;
 import com.usai.redant.rautils.receiver.RABroadcast;
 import com.usai.redant.rautils.receiver.RABroadcast;
 import com.usai.redant.rautils.utils.RAUtil;
 import com.usai.redant.rautils.utils.RAUtil;
 
 
 public class ApexDriverAlarmReceiver extends AlarmReceiver {
 public class ApexDriverAlarmReceiver extends AlarmReceiver {
     //负责通过alarm 从后台取notification 列表
     //负责通过alarm 从后台取notification 列表
-    protected  int alarm_timeInterval = 30 * 1000;
 
 
-    protected static final int	SO_TIMEOUT						= 15 * 1000;
+
+//    protected static final int	SO_TIMEOUT						= 15 * 1000;
     @Override
     @Override
     protected void InitAlarm(Context context, Intent intent) {
     protected void InitAlarm(Context context, Intent intent) {
 
 
+
+        int alarm_timeInterval = aggressive_alarm_timeInterval;
+        if(ApexDriverApplication.sharedApplication().isbackground)
+            alarm_timeInterval = normal_alarm_timeInterval;
         Log.d("ApexDriverAlarmReceiver", "InitAlarm ");
         Log.d("ApexDriverAlarmReceiver", "InitAlarm ");
 
 
 
 
@@ -102,6 +107,10 @@ public class ApexDriverAlarmReceiver extends AlarmReceiver {
     @Override
     @Override
     protected void AlarmProc(Context context, Intent intent) {
     protected void AlarmProc(Context context, Intent intent) {
 
 
+        int alarm_timeInterval = aggressive_alarm_timeInterval;
+        if(ApexDriverApplication.sharedApplication().isbackground)
+            alarm_timeInterval = normal_alarm_timeInterval;
+
         Log.d("ApexDriverAlarmReceiver", "AlarmProc ");
         Log.d("ApexDriverAlarmReceiver", "AlarmProc ");
 
 
         check_push(context);
         check_push(context);