Skip to content

Simple Async

Yuri Shmakov edited this page Nov 1, 2016 · 4 revisions

MainActivit.java:

public class MainActivity extends MvpAppCompatActivity implements HelloWorldView {
	@InjectPresenter
	HelloWorldPresenter mHelloWorldPresenter;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
	}

	@Override
	public void showMessage(int message) {
		TextView messageTextView = new TextView(this);
		messageTextView.setText(message);
		messageTextView.setTextSize(40);
		messageTextView.setGravity(Gravity.CENTER_HORIZONTAL);
		((ViewGroup) findViewById(R.id.activity_main)).addView(messageTextView);
	}
}

HelloWorldPresenter.java: ```java @InjectViewState public class HelloWorldPresenter extends MvpPresenter { public HelloWorldPresenter() { AsyncTask asyncTask = new AsyncTask() {
		@Override
		protected Void doInBackground(Void... voids) {
			sleepSecond();
			return null;
		}

		@Override
		protected void onPostExecute(Void aVoid) {
			getViewState().showMessage(R.string.hello_world);
		}

		private void sleepSecond() {
			try {
				TimeUnit.SECONDS.sleep(3);
			} catch (InterruptedException ignore) {}
		}
	};

	asyncTask.execute();
}

}

<br />
HelloWorldView.java:
```java
public interface HelloWorldView extends MvpView {
	void showMessage(int message);
}
<script src="https://gist.github.com/senneco/70bbb1ed4fa5e3b1f01eb7e201080786.js"></script>
Clone this wiki locally