HandlerThread example - Apk Apps For you

Apk Apps For you

Foxi apk download latest version for Android,fifa 20 download for Android,fifa 20 download,mobile games,games download,Android games free download apk

Click here to download

Search This Blog

2 > 3 4

Thursday, March 24, 2016

HandlerThread example


Last post show examples of AsyncTask and Thread + Handler, here is another version using HandlerThread.

This video show how it run on Android Emulator running Android N, in Multi-Window. The left windows running example of HandlerThread in this post, the right window running Thread + Handler in last post.


MainActivity.java
package com.blogspot.android_er.androidhandlerthread;

import android.os.Handler;
import android.os.HandlerThread;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ProgressBar;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

private Handler handler = new Handler();
private MyHandlerThread myHandlerThread;

Button btnStart;
ProgressBar progressBar;
TextView textMsg;

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

progressBar = (ProgressBar)findViewById(R.id.progress);
textMsg = (TextView)findViewById(R.id.msg);
btnStart = (Button)findViewById(R.id.start);

myHandlerThread = new MyHandlerThread("myHandlerThread");
final Runnable myRunnable = new Runnable() {

@Override
public void run() {
for (int i = 0; i <= 10; i++) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}

//is accessed from within inner class, needs to be declared final
final int finalI = i;
handler.post(new Runnable() {
@Override
public void run() {
progressBar.setProgress(finalI);
}
});
}

handler.post(new Runnable() {
@Override
public void run() {
textMsg.setText("finished");
}
});
}
};

myHandlerThread.start();
myHandlerThread.prepareHandler();

btnStart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
myHandlerThread.postTask(myRunnable);
}
});
}

@Override
protected void onDestroy() {
myHandlerThread.quit();
super.onDestroy();
}

public class MyHandlerThread extends HandlerThread {

private Handler handler;

public MyHandlerThread(String name) {
super(name);
}

public void postTask(Runnable task){
handler.post(task);
}

public void prepareHandler(){
handler = new Handler(getLooper());
}
}
}


layout/activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="16dp"
android:orientation="vertical"
tools:context="com.blogspot.android_er.androidhandlerthread.MainActivity">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:autoLink="web"
android:text="http://android-er.blogspot.com/"
android:textStyle="bold" />

<Button
android:id="@+id/start"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Start"/>

<ProgressBar
android:id="@+id/progress"
style="?android:attr/progressBarStyleHorizontal"
android:indeterminate="false"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:max="10"
android:progress="0"/>
<TextView
android:id="@+id/msg"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>




reference: Get a HandlerThread on your App

No comments:

Post a Comment

Featured Post

Stumble Guys MOD APK 0.54.2

Popular Posts

Advertisement

2 > 3 4