我有一个基本代码,在3个不同的包之间共享 我想获得当前包的启动器活动,这就是我今天所做的:
PackageManager pm = context.getPackageManager();
intent = pm.getLaunchIntentForPackage(context.getPackageName());
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
flag = PendingIntent.FLAG_UPDATE_CURRENT;
return PendingIntent.getActivity(context, 0, intent, flag);
但是我收到了Caused by java.lang.RuntimeException: Package manager has died
的崩溃报告
使用过的context
属于应该运行的服务,但众所周知,由于系统要求,它总是可以停止。
我知道我可以捕获异常,但随后将缺少启动意图
我希望有一个更少的资源需要方法来获得自包的启动意图。
P.S。 另一种解决方案是使用每个包的主要活动初始化某种单线,但由于packageName在运行时已知,我想我可以避免实现它。
答案 0 :(得分:0)
我可以尝试使用可以捕获包之间事件的广播接收器。 因此,您可以发送,存储您想要的任何数据,而不会发生死亡事件。