У меня изначально был Activity
, который создает thread
, который подключается к серверу, сам обновляет отправку обновления на сервер, который затем перенаправляет обновление на другое устройство, которое также запускает приложение. Я столкнулся с проблемой, когда вращение экрана создает другую сеть thread
. Обратите внимание: я не могу просто заблокировать экран, чтобы он не вращался.Активность, на которую вы можете получить доступ к сервису
Мне было поручено создать фоновое обслуживание (в качестве альтернативы, но не обязательно, если оно может работать по-другому), который запускает сеть thread
. Затем получите activity
после его восстановления для повторной привязки к службе и продолжения работы как обычно.
Мой вопрос, как я могу передать контекст моего activity
к thread
, а также доступ к переменной внутри этого thread
от моего activity
? Я предполагаю, что кто-то скажет создать class
внутри службы, которая запускает поток, и получить доступ к полю, которое находится внутри этого class
через getter. Я совершенно новичок в обслуживании, однако я могу запустить его и запустить thread
. Я просто запутался в том, как обратный вызов и направление между активностью и потоком.
EDIT Я получаю и ошибка его о том, что я не могу бросить осколок в свой класс Фрагмент
@Override
protected void onResume(){
FragmentManager manager = getFragmentManager();
myFrag = (NetworkFragment) manager.findFragmentByTag(TAG_NETWORK_FRAGMENT); // here
if (myFrag == null) {
myFrag = new NetworkFragment();
manager.beginTransaction().add(myFrag, TAG_NETWORK_FRAGMENT).commit(); // and it can't resolve this...
}
}
Фрагмент
import android.support.v4.app.Fragment;
public class NetworkFragment extends Fragment implements Runnable {
//blahbalh
}
Не передавайте информацию об услуге. На самом деле, не пропускайте никакой активности нигде, чтобы сохранить ее за пределами ее обычного жизненного цикла. В большинстве случаев также практически нет необходимости создавать свою собственную нить. Лучше использовать инструменты, предоставляемые Android, и следовать существующим шаблонам для многопоточности, как описано в документации для Android. –