Intereting Posts
Как добавить событие Click в Stack Layout или Frame Установка кнопки андроида невидимая, но при этом включен приемник onClick Android Studio – импорт внешней библиотеки / Jar Невозможно передать действие провайдера действия поставщику действий Android. Возможно ли создать пользовательскую библиотеку для использования в нескольких приложениях? Не удалось обновить студию Android с 2.0 до 2.1 Android VideoView прекращает потоковое воспроизведение через определенное время Развернуть кликабельную область ImageView с помощью прокладки? Android EditText – сосредоточьтесь на нем и выберите весь текст программно Android имитирует низкое сетевое подключение Почему вдруг я получил сообщение об ошибке «Не удалось решить задачу« андроид-9 »? Как открыть список доступных звуков уведомлений на Android Скрыть клавиатуру после поиска пользователя? Android Fragment – переход от одного вида к другому? Как я могу получить имя пакета текущего запуска в android 2.3 и выше?

Активность Android без GUI

Я создал действие, которое предназначено только для запуска из ссылки (с использованием фильтра намерений). Я не хочу, чтобы в этом мероприятии был графический интерфейс – я просто хочу, чтобы он запустил службу и разместил уведомление в панели. Я попытался поместить фильтр намерений для ссылки в свою службу, но это не работает. Есть ли лучшее, что можно сделать, чтобы ответить на фильтры намерений – или я могу просто сделать свою деятельность не графическим интерфейсом?
Извините, если я запутаюсь, Isaac

Solutions Collecting From Web of "Активность Android без GUI"

Лучше всего, если вы используете BroadcastReceiver . Вы можете создать новый BroadcastReceiver, который будет прослушивать Intent для запуска вашего уведомления и запуска вашего сервиса следующим образом:

 public class MyIntentReceiver extends BroadcastReceiver { @Override public void onReceive(Context _context, Intent _intent) { if (_intent.getAction().equals(MY_INTENT)) { // TODO Broadcast a notification _context.startService(new Intent(_context, MyService.class)); } } } 

И вы можете зарегистрировать этот IntentReceiver непосредственно в манифесте приложения без необходимости включать его в действие:

 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.domain.myapplication"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <service android:enabled="true" android:name="MyService"></service> <receiver android:enabled="true" android:name="MyIntentReceiver"> <intent-filter> <action android:name="MY_INTENT" /> </intent-filter> </receiver> </application> </manifest> 

Повторяя предыдущий ответ, вы не должны использовать широковещательный приемник.

В той же ситуации, что я сделал, было объявить тему следующим образом:

 <activity android:name="MyActivity" android:label="@string/app_name" android:theme="@android:style/Theme.NoDisplay"> 

Я не уверен, что служба будет работать, но приемник вещания определенно не будет. Url запускаются с использованием startActivity (). Трансляционные приемники не могут ответить на это.

http://developer.android.com/reference/android/content/BroadcastReceiver.html

FTA: Обратите внимание, что, хотя класс Intent используется для отправки и получения этих широковещательных передач, механизм трансляции Intent здесь полностью отделен от намерений, которые используются для запуска Activities с Context.startActivity (). Нет возможности для BroadcastReceiver видеть или захватывать намерения, используемые с startActivity (); Аналогично, когда вы передаете намерение, вы никогда не найдете или не начнете действие.

Используйте Сервис. Я работаю определенно. Когда вы нажимаете на программу, она будет работать без GUI. Используйте pendintgintent … getService (MySerice.class ….). Затем создайте новый класс MyService, расширяющий класс службы. Внутри MyService.class переопределите onStart () и сделайте все, что хотите.