Mpapp对运维app保活机制的调整

避免运维app启动多个activity
nx2024
Matthew 2 months ago
parent b578f95501
commit 87dbbb00d7

@ -400,10 +400,38 @@ public class MicroPhotoService extends Service {
public AlarmReceiver() {
mService = null;
}
public AlarmReceiver(MicroPhotoService service) {
mService = service;
}
private void keepMpMasterAlive(final Context context, long ts) {
try {
File mpmstLogFile = new File(MicroPhotoContext.buildMasterAppDir(context) + "logs/mlog.txt");
long mlogTime = mpmstLogFile.exists() ? mpmstLogFile.lastModified() : 0;
if ((ts - mlogTime) > 1800000 /*86400000*/) {
// More than 1 day, try restart it
Intent launchIntent = context.getPackageManager().getLaunchIntentForPackage(MicroPhotoContext.PACKAGE_NAME_MPMASTER);
if (launchIntent != null) {
launchIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
context.startActivity(launchIntent);
}
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
@Override
public void onReceive(Context context, Intent intent) {
try {
processNotification(context, intent);
} catch (Exception ex) {
ex.printStackTrace();
}
}
private void processNotification(final Context context, final Intent intent) {
String action = intent.getAction();
if (TextUtils.equals(ACTION_HEARTBEAT, action)) {
Log.i(TAG, "HB Timer Fired ACTION=" + action);
@ -426,31 +454,12 @@ public class MicroPhotoService extends Service {
mService.registerHeartbeatTimer(timeout);
try {
mService.detectGpsStatus();
ConnectivityManager connectivityManager = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivityManager != null) {
if (!connectivityManager.isDefaultNetworkActive()) {
infoLog("DefaultNetwork is NOT Active");
}
}
} catch (Exception ex) {
ex.printStackTrace();
}
try {
Date dt = new Date();
if ((dt.getHours() == 1 || dt.getHours() == 2) && dt.getMinutes() > 35 && dt.getMinutes() < 55) {
Intent launchIntent = context.getPackageManager().getLaunchIntentForPackage(MicroPhotoContext.PACKAGE_NAME_MPMASTER);
// launchIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
if (launchIntent != null) {
context.startActivity(launchIntent);
}
}
} catch (Exception ex) {
ex.printStackTrace();
}
keepMpMasterAlive(context, ts);
} else if (TextUtils.equals(ACTION_TAKE_PHOTO, action)) {
long ts = intent.getLongExtra(EXTRA_PARAM_TIME, 0);
int cnt = intent.getIntExtra(EXTRA_PARAM_SCHEDULES, 0);

Loading…
Cancel
Save