3

我有一个 Android 库,它有一个Service创建Notification. 据我了解,Notification必须设置contentIntent( PendingIntent) 否则将引发运行时异常。

问题是我希望用户能够按Service原样使用它,或者扩展它,以便他们可以PendingIntent在创建Notification. 但是,如果他们选择不这样做,我需要将其设置PendingIntent为某些东西,以免出现异常。有什么方法可以创建一个PendingIntent仅充当填充的假人吗?

以下是该方法的代码示例createNotification

PendingIntent p;
if(getPendingIntentCallback != null) {
    p = getPendingIntentCallback.getPendingIntent();
}
else {
    p = ?;
}
notification.contentIntent = p;
4

2 回答 2

7
PendingIntent pi=PendingIntent.getBroadcast(this, 0, new Intent("DoNothing"), 0);

这对我有用。它将启动“DoNothing”动作的广播。我希望没有人会听“DoNothing”广播并做一些事情作为对它的反应。但如果你愿意,你可以构建一些更奇特的东西。注意:我只是将其用作临时占位符。我将用对用户更有用的东西来代替它,因为我将在我的应用程序开发中取得进展。

于 2012-11-08T06:50:55.943 回答
0

通知需要有某种与之相关的动作。当应用用户点击通知时,您必须告诉 android 该怎么做。如果没有定义 contentIntent,让你的库失败会让你的库用户知道他们错过了一个非常重要的步骤。

您可以在创建通知之前检查待处理的意图。

if(getPendingIntentCallback != null) {
    p = getPendingIntentCallback.getPendingIntent();
    // create a notification

}
else {
    //don't create a notification
    Log.d("Notification", "Your notification was not created because no pending intent was found");
}

或者要回答您提出的问题,您可以创建一个虚拟的待处理意图,执行一些任意操作,例如进入主屏幕。

请参阅此线程: 如何在 Android 中以编程方式启动主屏幕

于 2012-10-25T02:09:16.573 回答