android-intent - 从Application类检测启动原因

标签 android-intent android

我有一个应用程序实现,我在后台执行一些繁重的任务,这在服务中可能更好,但这对这个问题无关紧要。

但是我有一个问题,我需要知道应用程序启动的原因。就像通过普通 Intent ( Intent 也很有趣,但这是可选的)或者如果应用程序仅声明用于备份或恢复操作。在最后一种情况下,我可以省略很多正常开始所需的东西。

我如何检测我的应用程序实现的启动原因( Intent 与备份/恢复)?

最佳答案

However I have the problem that I need to know why the Application was started

抱歉,这是不可能的。无论启动什么,都可以告诉 Application 它启动的原因,但是 Application 没有独立确定的好方法,比任何其他单例。

I have a Application implementation where I do some heavy tasks in the background, which might been better in a service but this does not matter for this question.

实际上,恕我直言,确实如此。 Application 对象在每个进程中创建,就在您的任何 ContentProvider(如果有)之后。我发现令人不安的是,您会因为流程启动而开始执行“一些繁重的任务”,而流程正在启动。在许多情况下,这对您的 UX 来说是一个非常重要的时间,并且在那一刻占用大量 CPU 时间并不是一个好主意。

另一方面,让这项工作由服务完成可以让您在时间安排上更加灵活。它还可以作为操作系统的标记,表明您正在执行这些“繁重的任务”,否则一旦它不再位于前台,Android 就可以随意终止您的进程。

关于android-intent - 从Application类检测启动原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20266760/

相关文章:

android - 关闭对话框 Android

android - 向 BroadcastReceiver 发送附加信息

android - onReceive() android.net.ConnectivityManager.CONNECTIVITY_ACTION

android - 如何从 sony smartwatch 2 更改主机应用程序中的文本?

java - 在 Linux 上使用 Java 程序通过 ADB 在 android 设备上安装 apk

android - 在屏幕上定位对话框

android - Android NDK 平台不支持 ABI [armeabi, mips]

java - Admob 没有填满所有宽度

java - 我的应用程序在启动之前崩溃了。这是一个简单的应用程序,我在其中使用 Intent 来调用前一个类中的另一个类

android - 为什么后台堆栈中的零 fragment