2012-05-03 44 views
33

Tôi muốn khởi chạy ứng dụng khi máy tính bảng của tôi khởi động để hoạt động chính của ứng dụng là điều đầu tiên người dùng nhìn thấy khi khởi động máy tính bảng.
Tôi đã đọc về LauncherActivity nhưng tôi không hiểu cách sử dụng nó.
Có ai có thể giúp tôi với các đề xuất, liên kết hoặc hướng dẫn cho việc này không?
LauncherActivity là cách tốt nhất hay có lựa chọn thay thế nào?Cách khởi động/khởi chạy ứng dụng tại thời điểm khởi động Android

+0

Im tìm kiếm chức năng tương tự, nếu bạn thành công hãy chia sẻ mã với tôi. – Anirudh

Trả lời

69

Những dòng mã có thể hữu ích cho bạn ...

Bước 1: đặt cho phép trong AndroidManifest.xml

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

Bước 2: Thêm đây là bộ lọc ý định trong thu,

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

Bước 3: Bây giờ, bạn có thể bắt đầu hoạt động đầu tiên của ứng dụng từ phương thức Đánh giá lớp người nhận.

public class BootReciever extends BroadcastReceiver 
{ 

@Override 
public void onReceive(Context context, Intent intent) { 
    // TODO Auto-generated method stub 
    Intent myIntent = new Intent(context, Tabs.class); 
    myIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    context.startActivity(myIntent); 
} 

} 
+1

thaks vishesh, morevore bước này hoạt động chính của tôi maust mở rộng LauncherActivity hoặc chỉ đơn giản là hoạt động? –

+1

Thay vào đó bạn có thể sử dụng Bộ thu, điều đó sẽ hoạt động tốt ... hãy kiểm tra dòng mã mới được cập nhật .. –

+0

Tabs.class trong bước 3 phải là hoạt động chính của tôi ??? –

11

Nếu bạn muốn khởi động ứng dụng khi máy tính bảng khởi động, bạn cần nghe hành động BOOT_COMPLETED và phản ứng lại. BOOT_COMPLETED là một hành động phát sóng được phát một lần, sau khi hệ thống khởi động xong. Bạn có thể nghe hành động này bằng cách tạo một BroadcastReceiver sau đó bắt đầu Hoạt động khởi chạy của bạn khi nó nhận được ý định với hành động BOOT_COMPLETED.

Thêm sự cho phép này để biểu hiện của bạn:

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

Tạo một BroadcastReceiver Tuỳ chỉnh trong dự án của bạn:

public class MyBroadCastReceiver extends BroadcastReceiver { 

    @Override 
    public void onReceive(Context context, Intent intent) { 

     if(intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)){ 
      Intent i = new Intent(context, MyActivity.class); 
      i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
      context.startActivity(i); 
     } 
    } 
} 

Sau đó chỉnh sửa file manifest của bạn bằng cách thêm BroadCastReceiver đến Manifest:

<receiver android:name=".MyBroadcastReceiver"> 
    <intent-filter> 
     <action android:name="android.intent.action.BOOT_COMPLETED" /> 
    </intent-filter> 
</receiver> 
+1

Đã thử, không hoạt động, sau khi hiển thị màn hình khởi động bình thường, ý định của tôi đang được gọi sau khoảng 2 giây. – Anirudh

2

Trả lời bởi @vishesh chandra là chính xác. Nhưng trên một số thiết bị không hoạt động vì ứng dụng đã được cài đặt trên bộ nhớ ngoài theo mặc định. Vui lòng đảm bảo rằng bạn chỉ định android: installLocation = "internalOnly" nếu không bạn sẽ không nhận được bất kỳ hành động Hoàn tất khởi động nào nếu ứng dụng được cài đặt trong thẻ SD. Thêm thẻ này vào thẻ ứng dụng trong tệp manifest.xml và nó sẽ hoạt động.

0

Tôi muốn thêm một điểm trong câu hỏi này mà tôi đã gặp phải trong vài ngày. Tôi đã thử tất cả các câu trả lời nhưng những câu trả lời đó không hiệu quả với tôi. Nếu bạn đang sử dụng phiên bản Android 5.1, hãy thay đổi các cài đặt này.

Nếu bạn đang sử dụng Android phiên bản 5.1 thì bạn phải bỏ chọn (Hạn chế khởi chạy) từ cài đặt ứng dụng.

cài đặt> Ứng dụng> ứng dụng của bạn> Restrict để khởi động (dis-select)

xin vui lòng xem hình ảnh.

Image

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