【问题标题】:android - set both class and action for intentandroid - 为意图设置类和动作
【发布时间】:2016-06-14 19:18:34
【问题描述】:

我有一个这样的意图:

notificationIntent = new Intent(context, HomeActivity.class);

此意图附加到正在进行的通知中。

现在,除了单击意图时打开的类之外,我还想在意图中添加一个动作字符串,这样当通知单击我的自定义BroadcastReceiver 时,它会监听相同的动作字符串会触发。

notificationIntent.setAction(context.getString(R.string.notification_clicked_action_string));

问题是,由于某种原因,BroadcastReceiver 没有被调用,而我还有其他 BroadcastReceiver 像这样注册有问题,它们工作正常。

那么,在一个意图中同时拥有 classaction 是个问题吗?

【问题讨论】:

    标签: android android-intent android-pendingintent android-broadcast android-broadcastreceiver


    【解决方案1】:

    那么,在一个意图中同时拥有一个类和一个动作是一个问题吗?

    不,那很好。

    但是,除非您有一个非常奇怪的命名系统,否则HomeActivity 是一个活动。这意味着new Intent(context, HomeActivity.class) 标识了该活动,并且您希望将其与PendingIntent.getActivity() 一起使用。您不能让 BroadcastReceiver 响应 startActivity(),这是在调用 PendingIntent 时将调用的内容。

    【讨论】:

    • 哦,我明白了,那么有什么方法可以在点击通知时发送广播吗?
    • @OfekAgmon:当然。使用与BroadcastReceiver 匹配的Intent,然后使用PendingIntent.getBroadcast()。你不能做的是有一个single PendingIntent 来调用一个活动和一个接收器。不过,您可以让您的活动在onCreate() 中发送广播。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-25
    • 1970-01-01
    • 2016-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多