- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有一个扩展 android.app.Application
的类,我用它来保存我的应用程序周围的全局状态。
我想在我的应用程序启动时启动一个服务,所以在这个 GlobalState
类的构造函数中,我尝试创建一个 Intent 并启动一个服务,但我无法创建一个 Intent ,因为我无法获取 Context
public GlobalState() {
Log.d(this.getClass().getSimpleName(), "Initialise DatabaseManager");
dbManager = new DatabaseManager(this);
Log.d(this.getClass().getSimpleName(), "Requesting start up of ContactsUpdater Service");
Intent i = new Intent(this, ContactsUpdater.class);
startService(i);
}
我试过使用 getApplicationContext()
,但这会引发空指针异常。
java.lang.NullPointerException异常 在 android.content.ContextWrapper.getPackageName(ContextWrapper.java:120) 在 android.content.ComponentName.(ComponentName.java:75) 在 android.content.Intent.(Intent.java:2551) 在 com.jameselsey.apps.cercademi.domain.GlobalState.(GlobalState.java:48) 在 java.lang.Class.newInstanceImpl( native 方法) 在 java.lang.Class.newInstance(Class.java:1479) 在 android.app.Instrumentation.newApplication(Instrumentation.java:957) 在 android.app.Instrumentation.newApplication(Instrumentation.java:942) 在 android.app.ActivityThread$PackageInfo.makeApplication(ActivityThread.java:518)
我很困惑,我可以使用它创建 DatabaseManager
......
有什么想法吗?
最佳答案
对于Activity、Service、ContentProvider和Application,你不应该在构造函数中做任何事情。当您知道对象已初始化并准备好使用时,您应该做的第一个工作是 onCreate()。
此外,请再想想“我想在我的应用程序启动时启动一个服务”。您在此处编写的代码是在您的进程 刚好启动时尝试启动服务。我真的不认为你想要那个。您希望启动此服务是因为您碰巧在后台收到了广播?
如果您只想进行一些首次初始化,我的建议是根本不要使用 Application。有一个可以在需要时检索的单例。然后你的初始化发生在实际需要的时候。无需将此与服务相关联;你可以做一个线程。使用服务的唯一原因是告诉系统“我的应用正忙于执行用户关心的后台工作,请不要杀了我。”
关于android - 如何从 "extends Application"类创建 Intent ,上下文为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6481553/
我将从 ColdFusion 8 迁移到 ColdFusion 10。 目前,在我的Unix根目录下,我只有1个Application.cfm,在这个根目录下我有大约10个子目录(以前的程序员就是这样
这个问题在这里已经有了答案: Is it possible to write a program in Java without main() using JDK 1.7 or higher? [d
我是编写 Windows 服务应用程序的新手,并且遇到了问题。 我用 Delphi 编写了一个普通的 Windows 应用程序来检查和调试代码的主要部分,现在必须将其转换为 NT 服务。 我的代码必须
我在 Visual Studio 2013 中运行它。 对于 Application.Current.Shutdown 我得到: “Application”是“System.Windows.Appli
给定以下 C++ 代码“mini.cpp”: #include "iostream" using namespace std; int main() { cout << "Hello Worl
什么是“服务器应用程序”?我被要求写一篇关于“服务器应用程序”中的错误的文章,但我不熟悉确切的术语。它们只是网络应用程序,还是其他东西? 最佳答案 “服务器应用程序”是一种应用程序,它等待来自其他应用
JavaFX 应用程序类必须扩展 javafx.application.Application package automationFramework import java.util.concurr
I have implemented deeplinking in my application that open my app (if available) but my app opens
我被困在一个非常基本的问题上。我使用 JavaFX 创建了一个简单的 hello world 程序,它在 JDK 1.8 上运行良好。但是当我切换到 JDK-11 时,它会抛出以下异常: Error:
我可以让Application Insights显示正在运行的每小时使用情况日志,但是有没有一种方法可以每小时显示一次平均使用情况,以查看必须在一天中的哪个时段使用网站? 最佳答案 在您的资源的概览
有谁知道为什么在.NET应用程序中实现Application Insights时不会收集用户代理信息,却能够在浏览器中收集统计信息? 我很希望能够针对特定的用户代理字符串过滤出请求,但是看起来我无法看
我有多个应用程序使用 Application Insights for Production Data。我正在尝试使用 City 遥测字段来映射我们当前的用户。这些数据的跟踪似乎非常不一致,并且在大多
有没有办法在 ASP.NET Web 应用程序中禁用 Application Insights?假设我想关闭生产中运行的应用程序中的所有数据收集。 最佳答案 如果 ikey 在 Application
如何在 Azure Application Insights 中将时差转换为毫秒 let startTime = todatetime('2017-05-15T17:02:23.7148691Z');
我正在修改一个用 Coldfusion 编码的现有 Web 应用程序。在现有代码中,大部分文件夹包含一个 Application.cfm 文件,该文件设置应用程序变量 但是,我对这些应用程序的部分修改
我在 Application Insights Analytics 中有一些数据,它有一个动态对象作为自定义维度的属性。例如: | timestamp | name
首先,我需要的是-n WebBrowser-s,每个都在自己的窗口中执行自己的工作。用户应该能够看到所有这些内容,或者仅看到其中一个(或不显示任何内容),并且能够对每一个执行命令。有一个主要形式,没有
我已收到以下代码以添加到封闭代码(受密码保护)中,以便可以发现错误。 On Error Resume Next: Err.Clear Application.SetOption "Error Trap
我正在使用 Delphi 7。我试图在非 VCL 单元中添加一个调用“application.processmessages”的过程。我收到错误“未声明的标识符:应用程序”。 如何从非 vcl 单元引
考虑一个非外汇现有应用程序,我们将其称为Business。 Business 公开一个 Model 对象,该对象又公开一些属性。 Model 还接受这些属性的监听器。 我的问题是关于向此类应用程序添加
我是一名优秀的程序员,十分优秀!