2013-03-21 32 views
6

Tôi đang làm việc với Android.Khởi động Dịch vụ khi khởi động nhưng không phải toàn bộ ứng dụng Android

Tôi có một ứng dụng tôi đang sử dụng Hoạt động để thiết lập các giá trị đầu vào người dùng cụ thể mà sau đó được sử dụng bởi dịch vụ để cung cấp cảnh báo dựa trên các giá trị đó. Làm nghiên cứu tôi đã xác định cách tôi có thể làm cho ứng dụng khởi động khi điện thoại khởi động, tuy nhiên, điều tôi thực sự muốn là bắt đầu dịch vụ nhưng không tải ứng dụng lên màn hình. Hiện tại toàn bộ ứng dụng sẽ tải lên màn hình khi tôi bật thiết bị và sau đó tôi phải thoát ra khỏi thiết bị.

Tôi đã tải xuống các chương trình tương tự có giao diện cho cài đặt nhưng nếu không thì chạy ở chế độ nền. Làm thế nào là thực hiện?

+0

Hệ điều hành nào? – nunzabar

+0

Xin lỗi về điều đó. Tôi đang làm việc với Android. Cụ thể API 10. – user2196720

+3

Đăng một số mã. Bạn đã thực hiện một BroadcastReceiver (tôi giả định), nhưng chính xác bạn đang làm gì trong 'onReceive'? context.startService()? –

Trả lời

22

Trước tiên, bạn phải tạo một máy thu:

public class BootCompletedReceiver extends BroadcastReceiver { 

    final static String TAG = "BootCompletedReceiver"; 

    @Override 
    public void onReceive(Context context, Intent arg1) { 
     Log.w(TAG, "starting service..."); 
     context.startService(new Intent(context, YourService.class)); 
    } 
} 

Sau đó thêm phép AndroidManifest.xml của bạn:

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> 

và đăng ký nhận ý:

<receiver android:name=".BootCompletedReceiver" > 
    <intent-filter> 
     <action android:name="android.intent.action.BOOT_COMPLETED" /> 
    </intent-filter> 
</receiver> 

Sau đây là đã hoàn tất, ứng dụng của bạn (lớp Application) sẽ chạy cùng với các dịch vụ, nhưng không có Hoạt động.

Ah, và không đặt ứng dụng của bạn trên thẻ SD (APP2SD hoặc một cái gì đó như thế), bởi vì nó phải nằm trong bộ nhớ chính để có sẵn ngay sau khi khởi động xong.

+0

Cảm ơn bạn đã trả lời. Bạn xác nhận với tôi rằng tôi đã thực sự làm điều đúng. Lý do không hoạt động là dịch vụ yêu cầu dữ liệu từ Hoạt động không có sẵn cho đến khi Hoạt động bắt đầu. Tuy nhiên, tôi đã đưa ra một công việc xung quanh. Nhiều đánh giá cao! – user2196720