我的应用程序可用作启动器,也可在启动时启动。但是,它有些问题。例如,我在设备上安装我的应用程序,然后选择“始终”按钮(作为默认启动器)将其打开。直到这里没有问题。但是,如果我重新启动设备(它在启动时打开,正如我之前所说),应用程序将打开。但是当我想关闭它时,我不能这样做。它再次打开。
这是我的清单文件:
<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);
}
}
}
答案 0 :(得分:2)
您可以使用PackageManager清除自己的默认应用程序,将其放在onCreate()中:
PackageManager pm = getPackageManager();
pm.clearPackagePreferredActivities("com.your.package.name");
并填写您自己的包名称。这应该清除应用程序中的启动器默认值,下次按主页按钮时,应显示选择使用哪个应用程序。