我的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);
我不清楚的原因是,如果应用未运行,应用程序会在主要活动上启动。我想要的是它在用户点击通知之前关闭。这有可能吗?有办法吗?
由于 的Davide
答案 0 :(得分:0)
我想要的是,在用户点击通知之前,它已关闭。
应该可以。不要给你的“主要活动”布局,做你的工作来显示通知,并将一个Intent for onClick通知动作放入 NotificationBuilder。之后直接关闭活动。 用另一个活动抓住这个意图(换另一个活动) 活动类进入意图),即具有布局。
编辑:
您还可以将透明应用主题应用于主要活动,以避免 突然出现黑屏一段时间。
new { C1 = 1, C2 = 2, C3 = 3}.
在清单中使用它:
<style name="AppTheme.Transparent">
<item name="android:windowBackground">@color/transparent</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowShowWallpaper">true</item>
</style>