Уведомления на основе времени

Я создаю приложение, которое должно отправлять пользователю уведомления на основе времени.

Я использую модуль диспетчера уведомлений и фоновые службы и отправляю уведомления. Это работает нормально, пока приложение открыто в фоновом режиме или доступно.

Как только я закрываю приложение, уведомления не приходят. Как я могу убедиться, что моя служба работает, даже если мое приложение закрыто, и продолжать отправлять уведомления?


person Asif    schedule 08.02.2016    source источник


Ответы (1)


Запустите службу с помощью Titanium.Android.startService. Например,

app.js

var intent = Titanium.Android.createServiceIntent({
    url: 'myservice.js'
});
intent.putExtra('interval', 10000); // Service should run its code every 2 seconds.
intent.putExtra(Titanium.Android.EXTRA_DONT_KILL_APP, true);
Titanium.Android.startService(intent);

myservice.js

var intent = Ti.Android.createIntent({
   action: Ti.Android.ACTION_MAIN,
   className: 'com.testApp.TestappActivity',
   packageName: 'com.testApp'
});

intent.addCategory(Ti.Android.CATEGORY_LAUNCHER);

var pending = Titanium.Android.createPendingIntent({
   intent: intent,
   flags: Titanium.Android.FLAG_UPDATE_CURRENT
});

var notification = Titanium.Android.createNotification({
   contentTitle: 'Something Happened',
   contentText: 'Click to return to the application.',
   contentIntent: pending
});

Titanium.Android.NotificationManager.notify(1, notification);

Также добавьте сервис в свой tiapp.xml,

<android xmlns:android="http://schemas.android.com/apk/res/android">
    <services>
        <service url="myservice.js" type="interval" />
    </services>
</android>
person poojakapuriya    schedule 08.02.2016
comment
Спасибо за ваш быстрый ответ. Позвольте мне попытаться вернуться к вам. - person Asif; 08.02.2016
comment
К сожалению, это не работает. 1. Ti.Android.startService не возвращает сервис. Возвращает пустоту. Следовательно, мы не можем добавить к нему прослушиватель событий taskremoved. Поэтому, когда я закрываю приложение, уведомления перестают приходить. - person Asif; 08.02.2016
comment
Ах да.. Это по ошибке.. просто попробуйте запустить службу через метод startService. Не добавляйте к нему прослушиватель событий. Отредактировали код. - person poojakapuriya; 10.02.2016
comment
Для получения дополнительной помощи прочитайте этот документ docs.appcelerator. com/платформа/последняя/#!/руководство/ - person poojakapuriya; 10.02.2016