From 383b7bce21669be983e5293ca28bc3692502cbab Mon Sep 17 00:00:00 2001 From: huangzhuanghua <401742778@qq.com> Date: Wed, 26 Oct 2016 14:59:28 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=98=B2=E6=AD=A2=E9=87=8D?= =?UTF-8?q?=E5=A4=8D=E5=A5=94=E6=BA=83=E5=AF=BC=E8=87=B4=E7=9A=84=E5=8A=A9?= =?UTF-8?q?=E6=89=8B=E9=87=8D=E5=A4=8D=E9=87=8D=E5=90=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/gh/base/AppUncaHandler.java | 34 ++++++++++++------- 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/com/gh/base/AppUncaHandler.java b/app/src/main/java/com/gh/base/AppUncaHandler.java index 37abe1b4a9..dd384bf5fd 100644 --- a/app/src/main/java/com/gh/base/AppUncaHandler.java +++ b/app/src/main/java/com/gh/base/AppUncaHandler.java @@ -4,13 +4,16 @@ import android.app.AlarmManager; import android.app.PendingIntent; import android.content.Context; import android.content.Intent; +import android.content.SharedPreferences; import android.os.Looper; import android.util.Log; import android.widget.Toast; +import com.gh.common.constant.Config; import com.gh.common.util.FileUtils; import com.gh.common.util.NetworkUtils; import com.gh.common.util.RunningUtils; +import com.gh.common.util.Utils; import com.gh.gamecenter.SplashScreenActivity; import com.gh.gamecenter.manager.DataCollectionManager; import com.tencent.stat.StatService; @@ -57,18 +60,25 @@ public class AppUncaHandler implements UncaughtExceptionHandler { e.printStackTrace(); } - Intent intent = new Intent(appController.getApplicationContext(), - SplashScreenActivity.class); - intent.setAction(Intent.ACTION_MAIN); - intent.addCategory(Intent.CATEGORY_LAUNCHER); - PendingIntent restartIntent = PendingIntent.getActivity( - appController.getApplicationContext(), 0, intent, - PendingIntent.FLAG_UPDATE_CURRENT); - // 退出程序并重启 - AlarmManager mgr = (AlarmManager) appController - .getSystemService(Context.ALARM_SERVICE); - mgr.set(AlarmManager.RTC, System.currentTimeMillis() + 1000, - restartIntent); // 1秒钟后重启应用 + // 防止重复奔溃,导致助手一直重启,20秒内不做处理 + SharedPreferences sp = appController.getApplicationContext().getSharedPreferences( + Config.PREFERENCE, Context.MODE_PRIVATE); + long time = sp.getLong("last_restart_time", 0); + if (System.currentTimeMillis() - time > 20 * 1000) { + sp.edit().putLong("last_restart_time", System.currentTimeMillis()).apply(); + Intent intent = new Intent(appController.getApplicationContext(), + SplashScreenActivity.class); + intent.setAction(Intent.ACTION_MAIN); + intent.addCategory(Intent.CATEGORY_LAUNCHER); + PendingIntent restartIntent = PendingIntent.getActivity( + appController.getApplicationContext(), 0, intent, + PendingIntent.FLAG_UPDATE_CURRENT); + // 退出程序并重启 + AlarmManager mgr = (AlarmManager) appController + .getSystemService(Context.ALARM_SERVICE); + mgr.set(AlarmManager.RTC, System.currentTimeMillis() + 1000, + restartIntent); // 1秒钟后重启应用 + } appController.finishActivity(); } }