我无法在启动后关闭我的启动器应用程序

时间:2013-04-09 14:33:30

标签: android

我的应用程序可用作启动器,也可在启动时启动。但是,它有些问题。例如,我在设备上安装我的应用程序,然后选择“始终”按钮(作为默认启动器)将其打开。直到这里没有问题。但是,如果我重新启动设备(它在启动时打开,正如我之前所说),应用程序将打开。但是当我想关闭它时,我不能这样做。它再次打开。

这是我的清单文件:

<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 :(得分:2)

您可以使用PackageManager清除自己的默认应用程序,将其放在onCreate()中:

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

并填写您自己的包名称。这应该清除应用程序中的启动器默认值,下次按主页按钮时,应显示选择使用哪个应用程序。