public class MyActivity extends Activity
{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
Thread myThread = new Thread(){
public void run()
{
startService(new Intent(BoogerActivity.this, LocalService.class));
}
};
myThread.start();
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
while(!LocalService.isRunning);
System.out.println("Why can't you reach here!?");
}
}
-
public class LocalService extends Service
{
public static boolean isRunning = false;
IBinder serviceBinder;
@Override
public void onCreate()
{
}
@Override
public int onStartCommand(Intent intent, int flags, int startId)
{
System.out.println("Service is running!");
isRunning = true;
return START_STICKY;
}
@Override
public IBinder onBind(Intent arg0)
{
// TODO Auto-generated method stub
return null;
}
}
Разве не должен запускаться myThread, установить для LocalService.isRunning значение true и разрешить основному потоку достигать оператора печати? Когда я пытаюсь это сделать, он всегда зависает во время цикла, что мне не хватает? Если я удалю цикл while, myThread выполнится, но только после завершения метода onCreate MyActivity. Может кто-нибудь объяснить мне, почему они не работают параллельно?