假设我创建了一个RemoteViews
的实例,它包含两个Button
。我希望当用户点击这些按钮时,Service
(或BroadcastReceiver
或其他)处理此点击。据我所知,到目前为止,有两种方法可以达到这个目的:
为这些按钮分配不同的动作,例如
的 ACTION_BTN_1_CLICKED
和
的 ACTION_BTN_2_CLICKED
然后通过intent.getAction()
检索服务中的操作,最后服务执行相应的任务
将一些额外内容添加到Intent对象中,该对象通过PendingIntent
括起来,例如:
intent.putStringExtra("which_button", "btn1"); // for Button 1
和
intent.putStringExtra("which_button", "btn2"); // for Button 2
另一方面,在Service中,我可以通过intent.getExtras().getString("which_button")
现在我的问题是哪种方法至少在实践中更好?感谢
答案 0 :(得分:1)
我不确定你是否可以认为一个人比另一个更好,但我认为第二个解决方案可能更易于管理和扩展。您可以在Integer
类中添加R
个额外的ID,也就是您声明的ID。这可以确保它们是唯一的,并允许您在switch
语句中引用它们。这也意味着您的路由代码在一个地方,因此如果有错误,将更容易找到。