|
|
|
@ -65,8 +65,11 @@ import com.xypower.mpapp.v2.Camera2VideoActivity;
|
|
|
|
|
import com.xypower.mpapp.video.RawActivity;
|
|
|
|
|
|
|
|
|
|
import java.io.File;
|
|
|
|
|
import java.io.FileOutputStream;
|
|
|
|
|
import java.io.RandomAccessFile;
|
|
|
|
|
import java.lang.reflect.Method;
|
|
|
|
|
import java.net.InetAddress;
|
|
|
|
|
import java.nio.channels.FileLock;
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
|
import java.util.Date;
|
|
|
|
|
import java.util.HashMap;
|
|
|
|
@ -147,6 +150,9 @@ public class MicroPhotoService extends Service {
|
|
|
|
|
|
|
|
|
|
public static boolean isRunning = false;
|
|
|
|
|
|
|
|
|
|
FileOutputStream mAppRunningFile;
|
|
|
|
|
FileLock mAppLock;
|
|
|
|
|
|
|
|
|
|
private Runnable delayedSleep = new Runnable() {
|
|
|
|
|
@Override
|
|
|
|
|
public void run() {
|
|
|
|
@ -202,6 +208,30 @@ public class MicroPhotoService extends Service {
|
|
|
|
|
public void onCreate() {
|
|
|
|
|
super.onCreate();
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
final String appPath = MicroPhotoContext.buildMpAppDir(this);
|
|
|
|
|
File lockerFile = new File(appPath);
|
|
|
|
|
lockerFile = new File(lockerFile, "data/alive/running");
|
|
|
|
|
mAppRunningFile = new FileOutputStream(lockerFile);
|
|
|
|
|
|
|
|
|
|
for (int idx = 0; idx < 3; idx++) {
|
|
|
|
|
try {
|
|
|
|
|
mAppLock = mAppRunningFile.getChannel().tryLock();
|
|
|
|
|
if (mAppLock != null && mAppLock.isValid()) {
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
try {
|
|
|
|
|
Thread.sleep(16);
|
|
|
|
|
} catch (Exception ex) {
|
|
|
|
|
}
|
|
|
|
|
} catch (Exception ex) {
|
|
|
|
|
ex.printStackTrace();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} catch (Exception ex) {
|
|
|
|
|
ex.printStackTrace();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
mHander = new ServiceHandler();
|
|
|
|
|
|
|
|
|
|
mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
|
|
|
|
@ -272,6 +302,18 @@ public class MicroPhotoService extends Service {
|
|
|
|
|
@Override
|
|
|
|
|
public void onDestroy() {
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
|
|
if (mAppLock != null) {
|
|
|
|
|
mAppLock.close();
|
|
|
|
|
}
|
|
|
|
|
if (mAppRunningFile != null) {
|
|
|
|
|
mAppRunningFile.close();
|
|
|
|
|
}
|
|
|
|
|
} catch (Exception ex) {
|
|
|
|
|
ex.printStackTrace();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
mStateService = STATE_SERVICE.NOT_CONNECTED;
|
|
|
|
|
|
|
|
|
|
Log.w(TAG, "MicroPhotoService::onDestroy called");
|
|
|
|
|