2010-03-08 41 views
7

Tôi đang cố gắng tạo lối tắt trên màn hình chính, khi được nhấn, sẽ bắt đầu một dịch vụ thay vì một hoạt động.Có thể khởi động dịch vụ bằng phím tắt không?

Có thể không? Làm sao?

Cảm ơn!

+0

là dịch vụ làm gì vậy? Điều gì về việc chỉ cần thiết lập một máy thu để nghe một cái gì đó dịch vụ sử dụng để khởi động nó thay thế? – Mark

Trả lời

9

Bạn có thể tạo Hoạt động giả mà chỉ đơn giản bắt đầu một dịch vụ, sau đó kết thúc bản thân:

public class MyServiceActivity extends Activity { 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     Intent intent = new Intent(this, MyService.class); 
     startService(intent); 
     finish(); 
    } 
} 
+0

Đúng. Tôi đã lấy anh ta theo nghĩa đen, nhưng điều đó chắc chắn sẽ hoạt động. Mặc dù vậy, bạn có thể phải chơi với chủ đề này một chút, vì vậy bạn không nhận được một khoảnh khắc tạm thời của một hoạt động. – CommonsWare

+0

Mã này chắc chắn hoạt động và đây là mã của tôi hiện đang làm. Tôi đã cố gắng bỏ qua bước hoạt động bổ sung. – gnobal

+3

Hãy chắc chắn rằng người dùng của bạn hiểu những gì đang diễn ra. Tôi có thể thấy những thứ như thế này thu hút rất nhiều ngôi sao, "khai thác shorcut và không có gì xảy ra" khiếu nại trên thị trường. – CommonsWare

5

Không, xin lỗi. Phím tắt chỉ khởi chạy các hoạt động.

+0

Vì vậy, có cách nào chính thức để tạo một widget/phím tắt để bắt đầu một dịch vụ? (để gửi yêu cầu mạng)? Các phím tắt chỉ có thể bắt đầu các hoạt động, các widget không có cùng kiểu với phím tắt. Cảm ơn. –

+0

@ThomasVos: Tiện ích ứng dụng có thể sử dụng 'PendingIntent' để bắt đầu một hoạt động, bắt đầu dịch vụ hoặc gửi một chương trình phát sóng. Chỉ cần gắn nó vào một cái gì đó trong giao diện người dùng của tiện ích ứng dụng (ví dụ: một nút) để được gọi khi giao diện người dùng đó được nhấp. – CommonsWare

+0

Cảm ơn bạn đã trả lời. Điều đó sẽ làm việc, nhưng tôi muốn các widget 1x1 để có phong cách giống như một "phím tắt". –

Các vấn đề liên quan