可以从ContentProvider.onCreate()启动服务吗?
更新后,我的应用程序需要使用服务器上的一些数据填充它的ContentProvider。 我发现从ContentProvider.onCreate()方法启动一个服务可行,但我不确定这是一个好主意还是随机工作。可以从ContentProvider.onCreate()启动服务吗?
我不知道在android中的应用程序的初始化。内容提供者创建之前服务是否已经可用?
有了更多详细信息,您将收到更准确的答案,但假设您的服务与您的ContentProvider
相关联,那就没问题。
如果您的服务在ContentProvider
的onCreate
中被调用,那么它将可用。但是如果您的onCreate
未被调用,那么在该方法内创建的任何内容都将不可用。
嗯......理论上它应该没问题,但我在问自己为什么需要服务。对于我来说,服务是在后台运行的东西,执行一些任务,这也可以让您的应用程序使用来自服务器的新数据保持最新。
如果我正确地理解了你并且实现了你自己的内容提供者,那么我会假设你只是在你的内容提供者被某个活动/服务查询时从服务器获取你的数据。这不是更合适和资源温和吗?
我不知道在Android中的 应用程序的初始化。在创建内容提供商 之前, 服务是否始终可用 ?
Android应用程序通常被设计成模块化的,这也是为什么,例如,你可以与其他应用程序共享您的应用程序的活动或实际调用 - 例如 - 你的Android设备的手机短信发送者的活动。因此,在正常的桌面应用程序中您可能已经习惯了Main(),但您可以使用Android OS调用的onCreate()
来调用Activity的开始。
唯一的入口点我能想象,在桌面应用程序是最近一个main()是覆盖Android应用程序类,并在您的清单文件
public class AndroidApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
}
@Override
public void onLowMemory() {
super.onLowMemory();
}
@Override
public void onTerminate() {
super.onTerminate();
}
}
适当地注册,而你的清单
<application android:name=".main.AndroidApplication" android:icon="@drawable/icon" android:label="@string/app_name">
...
</application>
在这里,你有你的onCreate()
这是在你的应用程序启动时调用的第一种方法。但是我仍然会注意你要在那里初始化什么。你应该总是初始化并加载你真正需要的资源。
我已经有了保持数据更新的服务。 但是,如果应用程序得到更新,我需要一种方法来强制更新服务在预定时刻之前完成其工作。 – Tughi 2010-02-07 12:19:05