2012-05-03 276 views
33

我想在平板電腦啓動時啓動我的應用程序,以便我的應用程序的主要活動是用戶在啓動平板電腦時看到的第一件事。
我已閱讀關於LauncherActivity,但我不明白如何使用它。
任何人都可以幫我提出建議,鏈接或教程嗎?
LauncherActivity是最好的方式還是有其他的選擇?如何在開機時啓動/啓動應用程序Android

+0

進出口尋找類似的功能,如果你成功了,請與我分享代碼。 – Anirudh

回答

69

這行代碼爲您可能有助於...

第一步: 設置權限在AndroidManifest.xml

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

第二步: 添加這是接收意圖過濾器,

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

第3步: 現在您可以從Receiver類的onReceive方法開始您的應用程序的第一個活動。

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這個步驟我的主要活動maust擴展LauncherActivity或乾脆活動? –

+1

相反,你可以使用Receiver,這將工作正常...檢查新的更新的代碼行.. –

+0

Tabs.class在步驟3應該是我的主要活動? –

11

如果您想在平板電腦啓動時啓動應用程序,則需要監聽BOOT_COMPLETED操作並對其作出反應。 BOOT_COMPLETED是在系統完成啓動後廣播一次的廣播操作。您可以通過創建BroadcastReceiver來監聽此操作,然後在收到BOOT_COMPLETED操作的意圖時啓動您的啓動Activity。

此權限添加到您的清單:

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

在你的項目中創建一個自定義廣播接收器:

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

然後通過添加的BroadcastReceiver以清單修改清單文件:

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

嘗試過,不起作用,在顯示正常啓動屏幕後,我的意圖在約2秒後被調用。 – Anirudh

2

通過@vishesh chandra答案是正確的。但在某些設備上不起作用,因爲默認情況下應用程序已安裝在外部存儲上。請確保您指定了android:installLocation =「internalOnly」否則,如果應用安裝在SD卡中,您將不會收到任何引導完成操作。將其添加到manifest.xml文件中的應用程序標記中,它將起作用。

0

我想在這個問題上添加一點,這是我幾天所面臨的問題。我嘗試了所有的答案,但那些都不適合我。如果您使用的是Android 5.1版本,請更改這些設置。

如果您使用的是Android 5.1版,那麼您必須從應用程序設置中取消選擇(限制爲啓動)。

設置>應用程序>您的應用程序>限制推出(DIS選擇)

請看圖片。

Image

相關問題