приложение все еще работает после отключения

Я установил приложение, которое я написал как системное приложение, которое после получения ACTION_BOOT_COMPLETED запускает службу.

Приложение работает просто отлично, однако я хотел бы отключить его (а не удалять полностью).

Поэтому я написал в командной строке «adb shell pm disable [Имя пакета]», и после перезагрузки, хотя я больше не вижу свое приложение в меню, я все равно получаю сообщение «К сожалению, [myApp] остановлен».

Логкат:

FATAL EXCEPTION: main 
E/AndroidRuntime( 1356): java.lang.RuntimeException: Unable to instantiate service [package name] : java.lang.ClassNotFoundException: Didn't find class "[packagename.classThatStartsTheService]" on path: /system/app/app.apk 
E/AndroidRuntime( 1356):    at android.app.ActivityThread.handleCreateService(ActivityThread.java:2516) 
E/AndroidRuntime( 1356):    at android.app.ActivityThread.access$1600(ActivityThread.java:144) 
E/AndroidRuntime( 1356):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1319) 
E/AndroidRuntime( 1356):    at android.os.Handler.dispatchMessage(Handler.java:99) 
E/AndroidRuntime( 1356):    at android.os.Looper.loop(Looper.java:137) 
E/AndroidRuntime( 1356):    at android.app.ActivityThread.main(ActivityThread.java:5074) 
E/AndroidRuntime( 1356):    at java.lang.reflect.Method.invokeNative(Native Method) 
E/AndroidRuntime( 1356):    at java.lang.reflect.Method.invoke(Method.java:511) 
E/AndroidRuntime( 1356):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
E/AndroidRuntime( 1356):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 
E/AndroidRuntime( 1356):    at dalvik.system.NativeStart.main(Native Method) 
E/AndroidRuntime( 1356): Caused by: java.lang.ClassNotFoundException: Didn't find class "[packagename.class that starts the service]" on path: /system/app/app.apk  
E/AndroidRuntime( 1356):    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:65) 
E/AndroidRuntime( 1356):    at java.lang.ClassLoader.loadClass(ClassLoader.java:501) 
E/AndroidRuntime( 1356):    at java.lang.ClassLoader.loadClass(ClassLoader.java:461) 
E/AndroidRuntime( 1356):    at android.app.ActivityThread.handleCreateService(ActivityThread.java:2513) 
E/AndroidRuntime( 1356):    ... 10 more

Означает ли это, что boot_completed по-прежнему распознается моим приложением, но поскольку оно отключено, оно не может работать? Или что-то еще?

Заранее спасибо!


person FarFarAwayUser    schedule 11.03.2014    source источник


Ответы (1)


Итак, по-видимому, у меня было другое приложение, в котором была возможность активировать мое приложение (только при выборе этого параметра, а не по умолчанию), поэтому после перезагрузки оно не могло найти свой apk, поскольку оно было отключено. Поэтому я также отключил второе приложение.

person FarFarAwayUser    schedule 12.03.2014
comment
как другое приложение запустило отключенное, если оно отключено? можно ли открыть отключенные приложения? - person android developer; 12.03.2014
comment
В этом-то и дело. Он не мог запустить его, потому что он был отключен, однако он все равно попытался, а затем появилось всплывающее сообщение. Вы можете повторно включить приложение с помощью «adb shell pm enable [имя пакета]» в cmd. - person FarFarAwayUser; 12.03.2014
comment
оооо.... извините . Я пропустил эту часть. скажите мне следующее: будет ли выбор принудительной остановки в качестве конечного пользователя (через экран управления приложениями) заставлять приложение оставаться в остановленном режиме, чтобы получатели вещания приложения не получали никаких намерений, пока приложение не будет запущено? так работает установка новых приложений, поэтому мне интересно, то же самое и для этой операции. - person android developer; 12.03.2014
comment
Насколько я знаю, он просто останавливает текущий процесс, но не остается в этом режиме, поэтому широковещательные сообщения все еще могут быть получены... - person FarFarAwayUser; 13.03.2014