Активность зависает после запуска службы

1

У меня есть сервер, работающий на устройстве Android в качестве Service. Я хочу, чтобы пользователь вводил номер клиента, а затем запускается сервис. Есть ли лучший способ позаботиться об этом, вместо того, чтобы передавать данные из одной активности в службу?

Кроме того, когда я использую вышеуказанный подход, кажется, что клиент зависает и заставляет приложение уничтожать. Вот код:

String a = clients.getText().toString();
Bundle bundle = new Bundle();
bundle.putCharSequence("NumberOfClients", a);           
Intent intent = new Intent(Manage.this, Server.class);
intent.putExtras(bundle);
Log.d("hi", a);
startService(intent);

И вот сервер:

@Override
public void onCreate() 
{                         
    Thread server = new Thread(new ServerThread());
    server.start();                 
}

public int onStartCommand(Intent intent, int flags, int startId) {
     super.onStartCommand(intent, flags, startId);       
     Bundle bundle = new Bundle();
     bundle = intent.getExtras();
     numberofclients = (String) bundle.getCharSequence("NumberOfClients");
     int a = Integer.parseInt(numberofclients);     

     return a;
    }

Когда я нажимаю кнопку для подключения к серверу, клиент зависает. Почему это происходит?

  • 0
    войти, отследить или отладить и посмотреть, что происходит
Теги:
android-activity
android-service

1 ответ

2
Лучший ответ

Предполагается, что onStartCommand вернет предопределенное значение того, как обращаться с сервисом. Похоже, вам нужен START_NOT_STICKY. Итак, в вашем возвратном заявлении в onStartCommand это то, что вы возвращаете. т.е.

return START_NOT_STICKY;

Если вы хотите сохранить целое число a для использования в другом месте службы, создайте глобальную переменную и установите ее равной a.

Обратитесь к Документам по Android на службе http://developer.android.com/reference/android/app/Service.html#START_CONTINUATION_MASK

Ещё вопросы

Сообщество Overcoder
Наверх
Меню