如果我在onCreate()
MyService中使用这段代码,它会在新线程中启动还是从主线程开始?
new Thread(new Runnable() {
@Override
public void run() {
startService(new Intent(this, MyService.class));
}
});
很抱歉,如果它很明显,但我是android的初学者。我研究了很多,但没有找到任何确定的东西。谢谢
答案 0 :(得分:1)
我希望它在UI线程中运行,除非你在服务中创建了一个新的线程......但你可以使服务在不同的线程或UI线程中运行,如
在onCreate()
Activity
内启动服务
new Thread("myThread"){
public void run() {
Intent intent = new Intent(MainActivity.this, MyService.class);
startService(intent);
};
}.start();
并测试服务的onCreate()中的线程名称......
public class MyService extends Service {
@Override
public void onCreate() {
super.onCreate();
String name = Thread.currentThread().getName();
if(name.equals("myThread")) {
// service started in new Thread...
}
}
@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
return null;
}
}