Возможно ли обнаружение Android-приложения, убитого или выведенного пользователем?
Я пытаюсь использовать ActivityLifecycleCallbacks зарегистрировавшихся в классе Application, чтобы обнаружить его Ассинг параметр Int и увеличить его в onActivityCreated, как показано ниже; Но это не работает.
Я думаю, что Служба Android в моем приложении делает эту глобальную переменную счетчика (определен в одноэлементном классе) не убит, хотя приложение было убито.
Он начинается с нуля только в первый раз, когда приложение запускается первым, а затем каждое приложение перезапускает его последнее значение, как последний раз, когда приложение было убито и больше не имеет значения нуля.
Другой вопрос в том, что как мы можем выпустить глобальные значения до их начальных значений, когда приложение было убито с использованием службы Android?
Как мы можем обнаружить приложение Android, убитое пользователем или Системой?
Singleton класс, который имеет глобальный счетчик активности
public class SingletonClass {
public int created_activity_number;
private static volatile SingletonClass instance = null;
private SingletonClass() {
}
public static SingletonClass getInstance() {
if (instance == null) {
synchronized (SingletonClass.class) {
// Double check
if (instance == null) {
instance = new SingletonClass();
}
}
}
return instance;
}
}
ActivityLifecycleCallbacks класс
public class MyLifecycleHandler implements Application.ActivityLifecycleCallbacks {
private static int created;
@Override
public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
SingletonClass.getInstance().created_activity_number++;
}
@Override
public void onActivityStarted(Activity activity) {
}
@Override
public void onActivityResumed(Activity activity) {
}
@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) {
}
}
В любой деятельности я использую ниже условия, чтобы проверить активность является первым созданный acitivy, когда приложение запускается.
// Enter this condition only one time no mattter how many times the application killed by the user end starts again.
if (SingletonClass.getInstance().created_activity_number == 1) {
// Yes, it is the first created activiy
}
Не возможно !!! –
Я открываю активность вне приложения, и когда пользователь обращается к кнопке, я открываю конкретную операцию, если приложение остается в живых или просто закрывает его. Как я могу это сделать? – ondermerol
Прошу быть конструктивным, я не могу понять, чего вы пытаетесь достичь! –