0

假设我创建了一个实例,RemoteViews它包含两个Buttons。我希望当用户单击这些按钮时 a Service(或 aBroadcastReceiver或其他东西)处理此单击。到目前为止,据我所知,有两种方法可以实现此目的:

  1. 为这些按钮分配不同的操作,例如
    ACTION_BTN_1_CLICKED

    ACTION_BTN_2_CLICKED
    ,然后通过检索服务中的操作intent.getAction(),最后服务执行适当的任务

  2. 在 Intent 对象中添加一些额外的内容PendingIntent,例如:

    intent.putStringExtra("which_button", "btn1"); // for Button 1

    intent.putStringExtra("which_button", "btn2"); // for Button 2

    另一方面,在服务中,我可以通过以下方式区分此信号intent.getExtras().getString("which_button")

现在我的问题是至少在实践中哪种方法更好?谢谢

4

1 回答 1

1

我不确定您是否可以争辩说一个比另一个更好,但我认为第二种解决方案可能更易于管理和扩展。您可以添加一个额外的,也许是您在类Integer中声明的 ID 。R这可确保它们是唯一的,并允许您在switch声明中引用它们。这也意味着你的路由代码在一个地方,所以如果那里有错误,它会更容易找到。

于 2014-02-02T15:39:16.437 回答