Android外部应用程序安装(SD卡上),通过接收器重新装载alarmmanager警报

Android外部应用程序安装(SD卡上),通过接收器重新装载alarmmanager警报,android,broadcastreceiver,sd-card,alarmmanager,intentfilter,Android,Broadcastreceiver,Sd Card,Alarmmanager,Intentfilter,我正在开发一个android应用程序,我想让用户安装在他们的SD卡上(http://developer.android.com/guide/appendix/install-location.html). 但是,该应用程序有一些通过AlarmManager创建的警报。根据android开发者指南(我包含的链接),如果卸载安装应用程序的外部媒体(SD卡),将发生以下情况:“向AlarmManager注册的警报将被取消。重新安装外部存储时,您必须手动重新注册任何警报。” 是否有某种方法可以“唤醒”我

我正在开发一个android应用程序,我想让用户安装在他们的SD卡上(http://developer.android.com/guide/appendix/install-location.html). 但是,该应用程序有一些通过AlarmManager创建的警报。根据android开发者指南(我包含的链接),如果卸载安装应用程序的外部媒体(SD卡),将发生以下情况:“向AlarmManager注册的警报将被取消。重新安装外部存储时,您必须手动重新注册任何警报。”


是否有某种方法可以“唤醒”我的应用程序,以便在重新安装SD卡时重新安排警报?也许使用一个带有目的过滤器的接收器?我尝试为android.intent.action.MEDIA_挂载添加一个接收器,但没有成功(可能是因为外部安装的应用程序没有获得该intent广播,或者是因为在媒体挂载和该intent广播后应用程序二进制文件无法立即使用?)。有人能提出其他的意图吗?或者其他的方法?android.intent.action.EXTERNAL\u应用程序\u可用的intent(http://developer.android.com/reference/android/content/Intent.html#ACTION_EXTERNAL_APPLICATIONS_UNAVAILABLE)似乎是我需要的,但是文件说,外部媒体上的应用程序不会达到这个目的。

目前没有解决办法:要么强制你的应用程序只能安装在内存中,要么实现一个附加应用程序,留在内存中并处理你的报警。

不认为这是可能的。这看起来很蹩脚,但没有非SD卡服务用于监控装载/卸载条件,这也有点蹩脚,这似乎是不可能的


另一个不将主应用程序放在SD卡上的原因是,usb电缆也可能导致存储器卸载等。如果用户将其作为硬盘驱动器连接到pc上。

什么是附加应用程序?你能在不需要用户从市场上下载的情况下执行一个吗?基本上是第二个独立的APK,它只是内部内存,但与第一个一起工作。我使用的术语附加应用程序并不是一种标准形式,只是一个描述其使用方式的一般性形容词。也许companion是一个更好的形容词。不,如果用户不从市场上下载/安装,您就无法执行它。@Femi所以,在您回答上述问题后,差不多10年了。在外部存储上安装了应用程序的设备重新启动后,现在有没有办法重置警报?如果不是,那么你的答案仍然认为应用程序必须安装在内存中?