2013-04-09 124 views
0

我的應用程序作爲啓動器工作,並且它在啓動時啓動。但是,它有些問題。例如,我在設備上安裝我的應用程序,並通過選擇Always按鈕(作爲默認啓動器)打開它。這裏沒有問題。但是,如果我重新啓動設備(它在啓動時打開,如前所述),應用程序將打開。但是當我想關閉它時,我無法做到這一點。它再次打開。

這是我的清單文件:
啓動後我無法關閉我的啓動器應用程序

<receiver android:enabled="true" android:name=".BootUpReceiver" 
    android:permission="android.permission.RECEIVE_BOOT_COMPLETED"> 
     <intent-filter> 
      <action android:name="android.intent.action.BOOT_COMPLETED" /> 
      <category android:name="android.intent.category.DEFAULT" /> 
     </intent-filter> 
</receiver> 

<activity 
    android:name="com.comeks.cocuktablet.Main" 
    android:label="@string/app_name" 
    android:launchMode="singleInstance" 
    android:screenOrientation="portrait" > 
    <intent-filter> 
     <action android:name="android.intent.action.MAIN" /> 
     <category android:name="android.intent.category.HOME" /> 
     <category android:name="android.intent.category.DEFAULT" /> 
     <category android:name="android.intent.category.LAUNCHER" /> 
    </intent-filter> 
</activity> 


這是BootUpReceiver.java

public class BootUpReceiver extends BroadcastReceiver{ 

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

     if(intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)){ 

      Intent i = new Intent(context, Main.class); 
      i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
      context.startActivity(i); 

     } 

    } 

} 
+1

兩者都不需要,它可能是啓動器或默認...這可能不是一個問題,有時候任何方式檢查它 – 2013-04-09 14:39:10

+0

你昨天基本上問了同樣的問題。 http://stackoverflow.com/questions/15885626/how-to-end-a-launcher-completely並禁用啓動器功能,用戶將不得不去設置 - >管理應用程序 - >你的應用程序 - >清除默認值。他們按下清除默認按鈕後,他們會按下主頁按鈕,他們會得到彈出顯示所有avaialbe發射器,包括股票之一(和你的) – FoamyGuy 2013-04-09 14:40:35

+0

@Arju謝謝你的回答。我嘗試過,但是當我在意圖過濾器中刪除這4行中的一行時,它不起作用。 – halilkaya 2013-04-09 14:43:32

回答

2

可以使用PackageManager清除自己的預設值的應用,放這裏面你的onCreate():

PackageManager pm = getPackageManager(); 
pm.clearPackagePreferredActivities("com.your.package.name"); 

並填寫您自己的軟件包名稱。這應該清除您的應用程序的啓動器默認設置,下次他們按Home按鈕時,應該顯示應用程序的選擇。

+0

這就是我想要的代碼。謝謝。但我仍然無法解決我的問題。因爲我的目標是用戶不在啓動後選擇默認啓動器。這是給孩子們的。我想我犯了一個邏輯錯誤... – halilkaya 2013-04-09 15:00:40

+0

錯誤必須是Android在啓動時不啓動它自己的啓動程序。因爲在我重新啓動設備之前,它工作正常。 '之後'我重新啓動它,它不起作用... – halilkaya 2013-04-09 15:03:52

相關問題