Я пытаюсь получить push-уведомление, работающее в моем приложении для Android, используя parse.com's push notification service. Они реализуют приемник вещания, который я простирающийся в своем собственном классе:Как осуществлять BroadcastService с активностью?
public class MyPushBroadcastReceiver extends ParsePushBroadcastReceiver
{
@Override
protected void onPushReceive(Context context, Intent intent)
{
JSONObject data = getDataFromIntent(intent);
[...]
super.onPushReceive(context, intent);
}
@Override
protected void onPushOpen(Context context, Intent intent)
{
ParseAnalytics.trackAppOpenedInBackground(intent);
Intent i = new Intent(context, MyActivity.class);
i.putExtras(intent.getExtras());
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
}
}
Я наиважнейшие два метода:
- onPushReceive - это называется, когда поступает уведомление
- onPushOpen - это вызывается, когда пользователь нажимает на уведомления в области уведомлений
Есть три вещи, которые мне нужно сделать:
- Когда приходит уведомление, мне нужно, чтобы сохранить его
- Когда пользователь нажимает на уведомление, мне нужно, чтобы открыть приложение к деятельности, которая отображает уведомления я сохраненные
- Если поступает уведомление в то время как приложение открыто для активности уведомлений о просмотре, мне нужно обновить интерфейс, чтобы включить новое действие.
Первая часть была простой. Я просто пишу JSON в файл.
Второй, с которым у меня не было проблем. Я создаю намерение, и это открывает мою деятельность. Он читает JSON из файла, а Боб - ваш дядя.
Я не смог найти чистый способ обработки третьей части.
Я думаю, что я застрял в том, что у меня нет четкого представления о жизненном цикле деятельности или BroadcastServices. Я тоже не создаю, в своем приложении они объявлены в манифесте и создаются каждый раз.
Создает ли фреймворк Android один из них, поскольку он обрабатывает манифест? Возможно ли, чтобы активность обнаружила экземпляр BroadcastReceiver? Если бы я мог, мне было бы легко подключить обратный вызов между ними.
Или мне нужно определить свой собственный BroadcastService, который ParsePushBroadcastReceiver будет использовать для публикации событий и что активность будет потреблять? Примеры, которые я видел при этом, кажутся чрезмерно сложными для того, что должно быть довольно простым.
Справка будет принята с благодарностью.
Извините, что задал неуместный вопрос. Я новичок в синтаксическом анализе, каждый ли он должен использовать эту строку кода «trackAppOpenedInBackground» или только начальную страницу для отслеживания? – NaiveBz