Android – 没有LAUNCHER活动的[Xoom / Honeycomb]应用程序不起作用

我有一个没有启动器活动的应用程序,从 Android 1.5到 Android 2.3.4正常工作.它由我的广播接收器启动.但是,在Honeycomb(摩托罗拉Xoom)上,我的广播接收器根本不起作用(它没有捕获任何意图).如果我在我的清单中添加启动器活动:
<activity android:label="@string/app_name" android:name="com.myapp.MainActivity"> 
<intent-filter> 
<action android:name="android.intent.action.MAIN" /> 
<category android:name="android.intent.category.LAUNCHER" /> </intent-filter> 
</activity>

然后我的应用程序正常工作(广播接收器捕获所有必要的意图并启动我的服务).

我非常感谢你的帮助!

解决方法

你在运行Honeycomb 3.1或更高版本吗?如果是,请查看 here.
安装应用程序后,它处于停止状态.首次启动应用程序时,它将移出停止状态.

所有广播意图都不会启动处于停止状态的应用程序.如果广播意图的发送者也想要启动已停止的应用程序,则必须指定Intent.FLAG_INCLUDE_STOPPED_PACKAGES标志.

Intent intent = new Intent(MY_INTENT_ACTION);
intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);
sendBroadcast(intent);

如果您无法更改发送意图的代码,最好的办法是保留启动器活动.每当用户在安装后启动应用程序时,它将被移出停止状态,您将开始接收广播.

请注意,用户可以从设备设置中的管理应用程序将应用程序移回已停止状态.

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...