我有一个隐藏在启动器中的应用程序。现在我想从拨号器打开应用程序。所以我有一个BroadcastReceiver,我正在处理事情。
1)首先我展示应用程序,
ComponentName componentName = new ComponentName(context,
SplashActivity.class);
context.getPackageManager().setComponentEnabledSetting(
componentName,
PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
PackageManager.DONT_KILL_APP);
2)然后启动一个Intent,
Intent launcher = new Intent(context, SplashActivity.class);
launcher.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
context.startActivity(launcher);
3)然后我再次隐藏应用程序,
ComponentName componentName2 = new ComponentName(context,
SplashActivity.class);
context.getPackageManager().setComponentEnabledSetting(
componentName2,
PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
PackageManager.DONT_KILL_APP);
问题
Intent启动成功,但应用程序在几秒钟后就被杀死了。但是,如果我启动除SplashActivity之外的任何其他活动,则不会出现此问题。问题是什么以及如何解决?
答案 0 :(得分:1)
您可以在Android清单中使用$query = "INSERT INTO `chat` (`sender`, `message`) VALUES ('{$sender}', '$message')";
标记用于启动器活动。更改启动器活动的清单,如下所示: -
<activity-alias>
并且在代码中,您正在显示和隐藏应用程序只需使用Alias Name,它在清单中使用,如上面的清单别名是SplashActivityAlias,因此在显示和隐藏应用程序的两种情况下都使用SplashActivityAlias而不是SplashActivity。 通过上面的操作,您可以隐藏您的应用程序图标 setComponent使用别名的EnabledSetting方法,您可以使用拨号程序启动主要活动即启动活动
隐藏应用
<activity-alias
android:name="com.watever.SplashActivityAlias"
android:targetActivity="com.watever.SplashActivity"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.MONKEY" />
</intent-filter>
</activity-alias>