【发布时间】:2016-05-08 12:15:45
【问题描述】:
我正在自学如何在 Android 上使用 Phonegap 通知。虽然显示通知似乎是一个相当简单的过程
public void triggerTestNotification(String tag, int id,Context ctxt)
{
Intent notificationIntent = new Intent(context, PallActivity.class);
notificationIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK |
Intent.FLAG_ACTIVITY_CLEAR_TOP);
notificationIntent.setAction(Intent.ACTION_MAIN);
notificationIntent.addCategory(Intent.CATEGORY_LAUNCHER);
PendingIntent contentIntent = PendingIntent.getActivity(ctxt, 0,
notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);
Notification not = new Notification.Builder(ctxt)
.setContentTitle("Title").setContentText("Title")
.setTicker("Tick tock")
.setAutoCancel(true)
.setContentIntent(contentIntent)
.setSmallIcon(ctxt.getApplicationInfo().icon).build();
NotificationManager notificationManager = (NotificationManager)
ctxt.getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(tag, id, not);
}
我发现比较困难的是以下
- 用户启动应用程序
- 用户离开并开始做其他事情 - 应用程序在后台运行
- 通知到达
- 已显示
- 用户点击通知。
此时应用应该回到前台。我以为我的意图代码
public class PallActivity extends Activity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
finish();
forceMainActivityReload();
}
private void forceMainActivityReload()
{
PackageManager pm = getPackageManager();
Intent launchIntent =
pm.getLaunchIntentForPackage(getApplicationContext().getPackageName());
startActivity(launchIntent);
}
@Override
protected void onResume()
{
super.onResume();
final NotificationManager notificationManager = (NotificationManager)
this.getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.cancelAll();
}
}
会处理这个,但它什么都不做。显然,我在这里遇到了问题 - 可能在 Intent 标志中。我非常感谢任何可能让我走上正轨的人
【问题讨论】:
-
你为什么在
onCreate中调用finish? -
我把
finish()放在那里是因为我在另一个插件中看到了它。但是,我已经尝试将finish()的代码移到onCreate的底部并一起删除。应用仍然没有回到前台。 -
您能否说出 Pall 活动的目的是什么 - 我的意思是它会立即重定向到您应用的启动器活动。
PallActivity不是您的启动器活动吗?你能包括你的清单吗? -
首先使用NotificationCompat.Builder 并从您的notificationIntent 中删除以下内容:notificationIntent.setAction(Intent.ACTION_MAIN); notificationIntent.addCategory(Intent.CATEGORY_LAUNCHER);
标签: android push-notification phonegap-plugins background-foreground