1

在某些情况下,我的应用程序通过调用我的Broadcast-ReceiversServices(等)之一启动,但我想阻止用于启动意图的组件。

为什么:因为我需要在任何组件启动之前做一些事先的初始化工作。但是这项工作可能是一项长期运行的事情,因此我不能只在主线程上的应用程序子类中执行它。

Application在我的应用程序中子类化。因此,我的方法是在onCreate()我的应用程序子类中以某种方式干预意图,而是启动我的特定服务,该服务运行预先初始化并重新调用意图,之后故意使用该服务。

你能想象任何可能完成这件事吗?谢谢!

Ps.:我有很多组件可以启动我的应用程序。我不想在每个组件中都包含我的条件代码。

4

1 回答 1

1

但我想阻止用于启动意图的组件。

除了使您的应用程序崩溃之外,这是不可能的。而且,即使那样,组件也永远不会启动。

因此,我的方法是在我的应用程序子类的 onCreate() 中以某种方式干预意图,而是启动我的特定服务,该服务运行预先初始化并重新调用意图,之后故意使用该服务。

缺少具有自定义框架实现的自定义 ROM,这是不可能的。您无权访问所需的信息,也无法停止该组件。

并且,如果您可能使用自定义 ROM,请将此初始化工作移至核心操作系统进程(即,不是 Android SDK 应用程序,而是在启动时启动的标准 Linux 进程),并让您的应用程序使用IPC 来获取这些数据。

于 2016-11-28T17:00:56.677 回答