Minggu, 14 Juni 2015

LAPORAN PRATIKUM 7 | THREAD

Edit Posted by with No comments
Percobaan kali ini adalah untuk membuat sebuah thread yang akan menampilkan pesan
secara terus menerus dan sebuah bilangan acak.

Buatlah project baru seperti ketentuan berikut :
Project Name : Thread
Buitl Target : Android 2.2
Application name : Thread
Package name : www.percobaan2.com
Activity : database4
Min SDK :8

Buka file values/string.xml lalu modifikasi sehingga menjadi source berikut ini:

string.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello">Aplysit - IT Solution Center</string>
    <string name="app_name">Try Thread - www.aplysit.com</string>
</resources>

Selanjutnya main.xml lalu modifikasi codingnya

main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" 
    android:text="@string/hello"
    />
<Button android:text="Start"
    android:layout_height="wrap_content"
android:id="@+id/btn_start"
android:layout_width="wrap_content">
   
</Button>
<Button android:text="Stop"
    android:layout_height="wrap_content"
android:id="@+id/btn_stop"
android:layout_width="wrap_content">
   
</Button>
</LinearLayout>
 
Lalu buatlah sebuah file benama mythread.java ketikkan coding dibawah ini

Mythread.java

package www.percobaan2.com;


import android.content.Context;
import android.os.Handler;

public class Mythread {
 public Handler mhandler;
 public showText text;

 public Mythread (Context context, Handler handler){
  mhandler = handler;
 }

 public synchronized void startShowText() {
  if (text == null) {
   text = new showText();
   text.start();
  }
 }

 public synchronized void stopShowText() {
  if (text != null) {
   text.requestStop();
   text = null;
  }
 }

 private class showText extends Thread {
  private volatile boolean stop = false;
   
  public void run() {
   while ((!stop)){   
    mhandler.obtainMessage(threadsimple.run,"Pesan dari thread" + Math.random()).sendToTarget();
    try {
     sleep(3000);
    }
    catch (Exception e){}
   }
   if (stop) {
    mhandler.obtainMessage(threadsimple.stop).sendToTarget();
   }
  }
 
  public synchronized void requestStop() {
            stop = true;
  }
 }


Kemudian buatlah sebuah file threadsimple.java lalu masukkan coding dibawah ini:
  
threadsimple.java

package www.percobaan2.com;

import www.percobaan2.com.R;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class threadsimple extends Activity {
 public static final int run = 1;
 public static final int stop = 2;
 public Mythread thread;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
        Button start = (Button)findViewById(R.id.btn_start);
        start.setOnClickListener(new OnClickListener() {
   public void onClick(View v) {
    //  TODO Auto-generated method stub
       thread.startShowText();
       System.out.println("run");
   }
        });
       
        Button stop = (Button)findViewById(R.id.btn_stop);
        stop.setOnClickListener(new OnClickListener() {
   public void onClick(View v) {
    //  TODO Auto-generated method stub
       thread.stopShowText();
       System.out.println("stop");
   }
        });
    }
    public void onStart() {
        super.onStart();
        thread = new Mythread(this, mHandler);
       }
      
       private final Handler mHandler = new Handler() {
           @Override
           public void handleMessage(Message msg) {
               switch (msg.what) {
               case run:
                Toast.makeText(getApplicationContext(), msg.obj.toString(), 2).show();
               break;
               case stop:
                Toast.makeText(getApplicationContext(), "Thread Stop", 2).show();
               break;
               }
           }
       };
   }
    
Hasil Runningnya Seperti dibawah ini

Terima Kasih
Semoga Bermanfaat...




0 komentar:

Posting Komentar