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

        }

    }

}
4

1 回答 1

2

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

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

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

于 2013-04-09T14:50:25.123 回答