Обнаружить кнопку долгое нажатие на Android - PullRequest
4 голосов
/ 02 марта 2012

Я хотел бы запустить метод из моего Сервиса нажатием физической кнопки (домой, назад, меню ...) Если пользователь долго нажимает на одну из этих кнопок, служба должна вызвать метод. Как я могу реализовать широковещательный приемник или слушатель для моего случая?

Ответы [ 3 ]

2 голосов
/ 02 марта 2012

Не думайте, что вы можете настроить долгое нажатие кнопки «Домой» - запрос на улучшение ссылки: http://goo.gl/fWbYt

Тем не менее, вы можете настроить долгое нажатие некоторых других жёстких кнопок, как упомянуто здесь: http://android -developers.blogspot.in / 2009/12 / back-and-other-hard-keys-three-Stories. HTML

1 голос
/ 02 марта 2012

Служба не может получить доступ к потоку пользовательского интерфейса. Одна вещь, которую вы могли бы сделать - это зарегистрировать прослушиватель onlongclick и затем передать намерение службе, используя широковещательный приемник или onStart (намеренное намерение) службы.

0 голосов
/ 02 марта 2012

Вы должны попробовать этот код:

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;
         }
     });
     }
    }
...