У меня есть приложение, которое предназначено для работы только как служба (без интерфейса, только в фоновом режиме). У меня нет активности, упомянутой в моем AndroidManifest.xml, но я поставил приемник для запуска приложения при запуске телефона.
Проблема в том, что когда я разрабатываю (использую Eclipse) приложение, мне нужно часто тестировать свои изменения. Когда я запускаю приложение (когда мой телефон подключен в режиме отладки), у меня появляется сообщение типа
[2011-12-14 00:18:40 - MyApp] Android Launch!
[2011-12-14 00:18:40 - MyApp] adb is running normally.
[2011-12-14 00:18:40 - MyApp] No Launcher activity found!
[2011-12-14 00:18:40 - MyApp] The launch will only sync the application package on the device!
[2011-12-14 00:18:40 - MyApp] Performing sync
Как я могу запускать приложение при запуске, не перезагружая его каждый раз?
Отредактируйте это больше невозможно для Android 3.1 или выше. Источник
Помимо двух опций, упомянутых EboMike: вы всегда можете отправить широковещательную рассылку BOOT_COMPLETED
через командную строку вместо перезагрузки телефона.
Использовать
adb shell am broadcast -a android.intent.action.BOOT_COMPLETED
Это приведет к ситуации, подобной фактической перезагрузке, а также вызовет приемники загрузки любых сторонних приложений. После того, как вы набрали его один раз в терминале, вы обычно можете повторить его, просто нажав клавишу со стрелкой вверх, после чего в большинстве операционных систем происходит возврат. Или вы можете включить его в скрипт, который запускается после переустановки приложения.
Если вы хотите ограничить вещание только вашим приложением, вы также можете указать компонент:
adb shell am broadcast -a android.intent.action.BOOT_COMPLETED -n your.app.packagename/.YourReceiverClassName
Это отправит перезагрузку только вашему ресиверу. Все остальные приложения не называются.