Android 推送通知。应用程序在主 Activity 上启动
Android push notification. App started on main Activity
我的 Android 应用程序通过 GCM 侦听 推送通知。
在消息中,我放置了一个 json 对象,其中包含一些要在应用程序中处理的信息,因此我可以基于此开始不同的活动。
这里是启动 PendingIntent 的代码:
@Override
public void onMessageReceived(String from, Bundle data) {
...
...
// here i create the pending intent object based on json sent in the notification message from server side
...
...
// add the notification
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
.setSmallIcon(defaultIcon)
.setLargeIcon(BitmapFactory.decodeResource(getResources(), R.drawable.ic_my_icon))
.setContentTitle("My Application")
.setContentText(body)
.setAutoCancel(true)
.setSound(defaultSoundUri)
.setVibrate(vibrate)
.setContentIntent(pendingIntent);
我不清楚的是,为什么 如果应用不是 运行,应用会在主 activity 上启动。我想要的是在用户单击通知之前它一直关闭。那可能吗?有办法吗?
谢谢
大卫
What i want is that it reamins closed until the user click on the notification.
应该可以。不要给你的 "Main Activity" 布局,做你的工作来显示通知并将 onClick 通知操作的 Intent 放入
通知生成器。之后直接关闭 activity。
用另一个 activity 捕捉这个意图(放另一个
Activity class 入意),即有布局。
编辑:
您还可以将透明应用主题应用到您的主 activity,以避免
弹出几毫秒的黑屏。
<style name="AppTheme.Transparent">
<item name="android:windowBackground">@color/transparent</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowShowWallpaper">true</item>
</style>
在您的清单中使用它:
android:theme="@style/AppTheme.Transparent"
我的 Android 应用程序通过 GCM 侦听 推送通知。 在消息中,我放置了一个 json 对象,其中包含一些要在应用程序中处理的信息,因此我可以基于此开始不同的活动。 这里是启动 PendingIntent 的代码:
@Override
public void onMessageReceived(String from, Bundle data) {
...
...
// here i create the pending intent object based on json sent in the notification message from server side
...
...
// add the notification
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
.setSmallIcon(defaultIcon)
.setLargeIcon(BitmapFactory.decodeResource(getResources(), R.drawable.ic_my_icon))
.setContentTitle("My Application")
.setContentText(body)
.setAutoCancel(true)
.setSound(defaultSoundUri)
.setVibrate(vibrate)
.setContentIntent(pendingIntent);
我不清楚的是,为什么 如果应用不是 运行,应用会在主 activity 上启动。我想要的是在用户单击通知之前它一直关闭。那可能吗?有办法吗?
谢谢 大卫
What i want is that it reamins closed until the user click on the notification.
应该可以。不要给你的 "Main Activity" 布局,做你的工作来显示通知并将 onClick 通知操作的 Intent 放入 通知生成器。之后直接关闭 activity。 用另一个 activity 捕捉这个意图(放另一个 Activity class 入意),即有布局。
编辑:
您还可以将透明应用主题应用到您的主 activity,以避免 弹出几毫秒的黑屏。
<style name="AppTheme.Transparent">
<item name="android:windowBackground">@color/transparent</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowShowWallpaper">true</item>
</style>
在您的清单中使用它:
android:theme="@style/AppTheme.Transparent"