Intereting Posts
Загрузите файл из внешнего хранилища в Inputstream Как программно обнаруживать доступность мобильных точек доступа в Android? Как SHA1 хэш строку в Android? Что такое таблица android_metadata? Есть ли кто-нибудь знает, как getWindow () в службе на Android? Невозможно выполнить прокрутку в ListView в swipeRefreshLayout Мое приложение Android Android теряет значения, хранящиеся в localStorage, когда он отключается. Кто-нибудь еще видит эту проблему? Android – Не удалось подключиться к устройству Bluetooth на Lollipop Не удалось выделить память: 8 Как использовать флиппер с тремя макетами? Как использовать Android-камеру или Camera2 API для поддержки старых и новых версий API без заметок? Android Gradle build с субпроектами Добавить onclick-прослушиватель в предопределенную кнопку? Ссылка на домашний каталог пользователя в сценарии Gradle Веб-просмотр Android: предотвращать перенос сенсорных жестов на родительский просмотрщик

Даже если приложение закрыто (убито)

Я хочу, чтобы эта служба запускалась, даже если приложение закрыто (kiiled) или даже если пользователь не запускает приложение. Я хочу, чтобы сервис запускался после того, как приложение установлено, и с этого момента служба должна работать всегда.

public class notifications extends Service { @Override public IBinder onBind(Intent intent) { // TODO Auto-generated method stub return null; } @Override public void onCreate() { } @Override public void onStart(Intent intent, int startId) { final Handler handler = new Handler(); final Runnable runb = new Runnable() { public void run() { Toast.makeText(getApplicationContext(), " Service Started", Toast.LENGTH_LONG).show(); handler.postDelayed(this, 10000); } }; handler.postDelayed(runb, 0); } @Override public void onDestroy() { } }*/ public class notifications extends IntentService { private Timer mBackGroundTimer; public notifications() { super("myservice"); this.mBackGroundTimer=new Timer(); } @Override protected void onHandleIntent(Intent intent) { // TODO Auto-generated method stub mBackGroundTimer.schedule(new TimerTask() { public void run() { try { Notification("This is message from Dipak Keshariya (Android Application Developer)", "This is Android Notification Message"); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } },1000, 2000); } // END onHandleIntent() private void mStopTimer() { //Call this whenever you need to stop the service mBackGroundTimer.cancel(); } private void Notification(String notificationTitle, String notificationMessage) { NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); android.app.Notification notification = new android.app.Notification(R.drawable.ic_launcher, "A New Message from Dipak Keshariya (Android Developer)!", System.currentTimeMillis()); Intent notificationIntent = new Intent(this, MainActivity.class); PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0); notification.setLatestEventInfo(getApplicationContext(), notificationTitle, notificationMessage, pendingIntent); notificationManager.notify(10001, notification); } } 

Как я могу это сделать?

Solutions Collecting From Web of "Даже если приложение закрыто (убито)"

Если вы посмотрите на свой код, вы хотите, чтобы ваша служба периодически выдавала уведомления.

Что касается того, что он работает постоянно, имейте в виду, что по дизайну система Android может в любой момент прекратить ваш сервис. Вы можете немного повлиять на это, но вы не можете помешать системе убить ваш сервис.

Поэтому для ваших периодических действий было бы лучше использовать AlarmManager с повторяющимся сигналом тревоги. Тогда ваш сервис будет в основном одноразовым, т. Е. Выполнить действие один раз, а затем выйти.

Для некоторого кода смотрите здесь:

Android: диспетчер аварийных сигналов

Вам необходимо реализовать метод OnStartCommand класса Service и в нем вернуть Service.START_STICKY. Это сделает трюк. Если вы убьете приложение, служба будет продолжать работать в фоновом режиме. Однако, если вы перезагрузите свой телефон, я думаю, вам нужно реализовать что-то еще в своем приложении, а также службу загрузки или что-то в этом роде.

Поскольку вам необходимо запустить службу в фоновом режиме. Вы находитесь на правильном пути, чтобы использовать эту услугу, потому что это предназначено только для фоновой работы.

От активации вы можете начать обслуживание

 startService(new Intent(activityName.this, serviceName.class)); 

Или если ваше приложение не имеет какой-либо активности, то вы можете сделать службу по умолчанию и основным средством запуска приложения, поставив

 <service android:name="name of the service" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </service> 

Я думаю, что ответ на этот вопрос таков: https://developer.android.com/training/sync-adapters/creating-sync-adapter.html

Адаптеры синхронизации, введенные в Google I / O 2013.