Как я прошу по поводу: Как я прошу по поводу:
У меня есть класс, который я предоставляю обратные вызовы через лямбды. Эти лямбды обеспечивают функциональность обратного вызова и обновляют пользовательский интерфейс Activity.
В двух словах у меня есть следующий класс:
class MyProcess extends Runnable{ Callback callback; Callback exceptionCallback; public function setCallback(Callback callback){this.callback=callback;} public function setExceptionCallback(Callback callback){this.exceptionCallback = callback} public void doStuff() { try{ // Some Logic there that performs Networking callback.call(); }catch(Exception e){ exceptionCallback.call(e); } } public void run(){ this.doStuff(); } }
И в своей деятельности я делаю следующее
class MyActivity extends extends AppCompatActivity implements View.OnClickListener{ MyProcess process; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.my_activity); process = new MyProcess(); process.setExceptionCallback((Exception e)->{ Log.e("MyApp",MyActivity.class+e.getMessage()); }); Button submit = (Button)findViewById(R.id.connect_btn); submit.setOnClickListener(this); process.setCallback(()->{submit.setEnabled(true)}); } @Override public void onClick(View v){ Button submit = (Button)findViewById(R.id.connect_btn); submit.setEnabled(false); runOnUiThread(this.retriever); } }
Но runOnUiThread
не позволяет мне подключаться к сети. Поэтому, есть ли у вас какие-либо идеи о том, как я могу запустить поток, который выполняет сетевое взаимодействие;
Оригинал: “https://dev.to/pcmagas/how-i-can-update-the-activity-s-ui-using-lambdas-for-events-4970”