Browse Source

安装成功启动接收器优化

lhm 3 năm trước cách đây
mục cha
commit
d5a077118e

+ 16 - 8
app/src/main/java/com/emato/ich/update/InstallResultReceiver.java

@@ -8,6 +8,7 @@ import android.content.Intent;
 import android.content.pm.PackageInstaller;
 import android.os.Build;
 import com.emato.ich.utils.Log;
+import com.emato.ich.utils.LoggingUtils;
 
 /**
  * 接收安装成功后的广播接收器
@@ -17,17 +18,24 @@ public class InstallResultReceiver extends BroadcastReceiver {
     private static final String TAG = InstallResultReceiver.class.getName();
     @Override
     public void onReceive(Context context, Intent intent) {
-        Log.i(TAG, "onReceive: "+intent.getIntExtra(PackageInstaller.EXTRA_STATUS,PackageInstaller.STATUS_FAILURE));
+        try {
+            Log.i(TAG, "onReceive: "+intent.getIntExtra(PackageInstaller.EXTRA_STATUS,PackageInstaller.STATUS_FAILURE));
 
-        Intent intent1 = context.getPackageManager().getLaunchIntentForPackage(context.getPackageName());
-        PendingIntent restartIntent = PendingIntent.getActivity(context, 0, intent1, PendingIntent.FLAG_ONE_SHOT);
-        AlarmManager mgr = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
+            Intent intent1 = context.getPackageManager().getLaunchIntentForPackage(context.getPackageName());
+            PendingIntent restartIntent = PendingIntent.getActivity(context, 0, intent1, PendingIntent.FLAG_ONE_SHOT);
+            AlarmManager mgr = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
 
-        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {// 6.0及以上
-            mgr.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 10000, restartIntent);
+            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {// 6.0及以上
+                mgr.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 10000, restartIntent);
 
-        } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {// 4.4及以上
-            mgr.setExact(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 10000, restartIntent);
+            } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {// 4.4及以上
+                mgr.setExact(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 10000, restartIntent);
+            }
+        } catch (NullPointerException e) {
+            Log.w(TAG, "安装后启动出现空指针异常!可忽略!");
+        } catch (Exception e) {
+            Log.e(TAG, "安装后启动出现异常!", e);
+            LoggingUtils.sendAppErrorLog("安装后启动出现异常!", e);
         }
         /*if (intent != null) {
             final int status = intent.getIntExtra(PackageInstaller.EXTRA_STATUS,PackageInstaller.STATUS_FAILURE);