问题描述
|
我正在阅读\“ Pro Android 2 \”,其中包含一个出色的Service示例,如下所示:
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.util.Log;
public class TestService1 extends Service {
private static final String TAG = \"TestService1\";
@Override
public void onCreate() {
Log.d(TAG,\"onCreate\");
super.onCreate();
}
@Override
public IBinder onBind(Intent intent) {
Log.d(TAG,\"onBind\");
return null;
}
}
我还将服务定义条目添加为以下项的子项:
<application> in my AndroidManifest.xml as follows:
<service android:name=\"TestService1\"></service>
然后,书中说:“下一个明显的问题是如何调用服务?”
而这正是我想知道的!!!我已经搜寻过这本书,但看不到如何启动该服务。该书实际上似乎表明该服务是在启动时调用的。也许我只是误解了这一部分。
这只是实验性的,我只想查看服务运行情况,并查看logcat中的Log消息。这本书说:\“系统在首次创建服务时但在调用onStart()之前调用onCreate()。该过程类似于创建活动的过程,为服务提供了一种执行一次性初始化的方法在启动时。”
好的,但是我不确定启动服务的方式,除非在我的主要活动的onCreate()中执行以下操作:
Intent TestService1 = new Intent(this,com.mydomain.myproject.TestService1.class);
startActivity(TestService1);
但是,当我这样做时,我得到了错误消息:“应用程序...已意外停止。”
我认为这个问题有一个简单的解决方案,但是我太简单了,看不到它:)
解决方法
你很亲近服务不是一项活动,因此您无法使用
startActivity
来启动它。而是使用类似命名的“ 4”方法。