我试图在我的Android应用中使用parse.com的push notification service来获取推送通知。他们实现广播接收器,这是我在我自己的类扩展我:如何让BroadcastService与Activity进行通信?
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这就是所谓的 - 这是当用户单击通知区域中的通知
有三件事情我需要做的叫:
- 当一个通知到达,我需要当用户点击的通知,将其保存
- ,我需要打开应用程序,以显示我已经保存
- 如果通知到达通知的活动当我将应用打开到显示通知活动时,我需要更新UI以包含新活动。
第一部分很简单。我只是写了一些JSON文件。
第二个我没有任何问题。我创建了一个意图,并打开了我的活动。它从文件中读取JSON,Bob是你的叔叔。
我一直无法找到处理第三部分的干净方式。
我觉得我被卡住的地方是我没有清楚地了解Activities或BroadcastServices的生命周期。我也没有创建,在我的应用程序中,他们在清单中声明,并在任何时候构造。
Android框架是否会在处理清单时创建其中的每一个?活动是否可以找到BroadcastReceiver的实例?如果可以的话,我很容易在他们之间建立一个回调。
或者是否需要定义我自己的BroadcastService,ParsePushBroadcastReceiver将用于发布事件,并且该活动会消耗?我所看到的例子看起来过于复杂,应该是一件相当简单的事情。
帮助将不胜感激。
对不起,询问无关的问题。我是新来解析,它是否每一个活动都必须使用这一行代码“trackAppOpenedInBackground”或只启动页面的追踪目的? – NaiveBz