在Android上长按检测按钮

时间:2012-03-02 18:52:32

标签: android broadcastreceiver android-service

我想通过按下物理按钮(家庭,后面,菜单......)从我的服务中启动一个方法 如果用户长按其中一个按钮,则该服务应调用方法。如何为我的案例实现广播接收器或听众?

3 个答案:

答案 0 :(得分:2)

不要认为您可以自定义长按主页按钮 - 参考增强请求:http://goo.gl/fWbYt

然而,您可以自定义长按其他硬按钮:http://android-developers.blogspot.in/2009/12/back-and-other-hard-keys-three-stories.html

答案 1 :(得分:1)

服务无法访问UI线程。您可以做的一件事是让活动注册onlongclick侦听器,然后使用广播接收器或服务的onStart(Intent intent)向服务广播意图。

答案 2 :(得分:0)

您应该尝试以下代码:

public class MyActivity extends Activity {
protected void onCreate(Bundle icicle) {
     super.onCreate(icicle);

     setContentView(R.layout.content_layout_id);

     final Button button = (Button) findViewById(R.id.button_id);
     button.setOnLongClickListener(new View.OnLongClickListener() {
         public boolean onLongClick(View v) {
             // Perform action on click
             return true;
         }
     });
     }
    }