Я пытаюсь использовать SDK, который, кажется, должен создать обработчик в моем сервисе.looper.prepare a ui thread
Появилось сообщение об ошибке, говорящее, что я не могу создать обработчик, если поток не вызвал Looper.prepare()
, поэтому я вызываю Looper.prepare()
, и эта проблема исчезает. Однако этой службе необходимо запустить активность через некоторое время, и это Looper.prepare()
, кажется, возится с ней, так как первая ошибка функции пользовательского интерфейса говорит о том, что она не может быть вызвана из потока, отличного от ui.
Я немного смущен, почему это происходит, и исследование, которое я сделал для нитки и петлителя, не помогло мне. Я понимаю, почему мы не можем создать обработчик, если в потоке не существует петлителя, но не почему создание петлителя не позволяет мне использовать поток ui после этого.
Ниже мой код упрощен:
public class MyService extends Service implement SDKCallback{
...
void callSDK(){
Looper.prepare();
SDK.run(); //Does thing I don't know about
}
@Override
SDKCallback(){
startActivity(new Intent(this, MyActivity.class);
}
}
Можете ли вы отправить код, пожалуйста? – varunkr
Просто сделал, но я не уверен, если это поможет. Проблема действительно связана с взаимодействием между обработчиком; петлитель и нить. – Laetan