2013-04-09 2 views
0

Мое приложение работает как запускающее устройство, а также запускается при запуске. Однако с этим что-то не так. Например, я устанавливаю свое приложение на устройство и открываю его, выбирая кнопку «Всегда» (в качестве запуска по умолчанию). Здесь нет проблем. Однако, если я перезагружу свое устройство (оно открывается при запуске, как я уже говорил), приложение открывается. Но когда я хочу закрыть его, я не могу этого сделать. Он открывается снова.

Это мой файл манифеста:
Я не могу закрыть приложение для запуска после запуска

<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

Оба они не нужны, это может быть пусковая установка или по умолчанию ... это может быть не проблема, иногда каким-либо образом проверить его –

+0

вы задали по существу тот же вопрос вчера. http://stackoverflow.com/questions/15885626/how-to-end-a-launcher-completely И чтобы отключить функцию запуска, пользователю необходимо перейти в Настройки-> Управление приложениями-> YourApp-> Очистить значения по умолчанию. После того, как они нажимают кнопку очистки по умолчанию, в следующий раз, когда они нажимают кнопку «домой», им будет выдана всплывающая подсказка, которая показывает все пусковые установки avaialbe, включая запасной (и ваш) – FoamyGuy

+0

@Arju Спасибо за ваш ответ. Я попробовал, но когда я удаляю одну из этих 4 строк в фильтре намерений, это не работает. – halilkaya

ответ

2

Вы можете использовать PackageManager, чтобы очистить собственное приложение его по умолчанию, положить это внутри вашего onCreate():

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

и заполните свое собственное имя пакета. Это должно очистить значение по умолчанию от вашего приложения, в следующий раз, когда они нажимают кнопку «домой», они должны показать варианты использования приложения.

+0

Вот код, который я хочу. Спасибо. Но я еще не могу решить свою проблему. Поскольку моя цель - пользователь не выбирать пусковую установку по умолчанию после запуска. Это для детей. Думаю, я допустил логическую ошибку ... – halilkaya

+0

Ошибка должна заключаться в том, что Android не запускает свою собственную пусковую установку при запуске. Потому что, прежде чем перезагружать устройство, он работает нормально. «После» я перезагружаю его, он не работает ... – halilkaya

Смежные вопросы