Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android-将单击侦听器连接到RemoteView_Android_Android Pendingintent_Android Remoteview - Fatal编程技术网

Android-将单击侦听器连接到RemoteView

Android-将单击侦听器连接到RemoteView,android,android-pendingintent,android-remoteview,Android,Android Pendingintent,Android Remoteview,假设我创建了一个remoteview实例,它包含两个按钮。我希望当用户单击这些按钮时,服务(或广播接收器或其他东西)处理此单击。据我所知,实现这一目标有两种方法: 为这些按钮指定不同的操作,例如 单击的操作\u BTN\u 1\u 和 单击的操作\u BTN\u 2\u 然后通过intent.getAction()检索服务中的操作,最后服务执行适当的任务 在通过pendingent封闭的意向对象中添加一些额外的内容,例如: intent.putStringExtra(“哪个按钮”,“btn1”)

假设我创建了一个
remoteview
实例,它包含两个
按钮。我希望当用户单击这些按钮时,
服务
(或
广播接收器
或其他东西)处理此单击。据我所知,实现这一目标有两种方法:

  • 为这些按钮指定不同的操作,例如
    单击的操作\u BTN\u 1\u

    单击的操作\u BTN\u 2\u
    然后通过
    intent.getAction()
    检索服务中的操作,最后服务执行适当的任务

  • 在通过
    pendingent
    封闭的意向对象中添加一些额外的内容,例如:

    intent.putStringExtra(“哪个按钮”,“btn1”);//对于按钮1


    intent.putStringExtra(“哪个按钮”,“btn2”);//对于按钮2

    另一方面,在服务中,我可以通过
    intent.getExtras().getString(“哪个按钮”)


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

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