2016年10月18日火曜日

Android 接口回调 和 多线程

Android 接口回调 和 多线程


Back.java

public class Back {

    private int i;

    public interface CallBack{
        public void getstring(int s);
    }

    public void demo(final CallBack callBack){
        Thread tt = new Thread(new Runnable() {
            @Override
            public void run() {
                for (i = 0; i < 999999; i++){
                }
                callBack.getstring(i);
            }
        });

        try {
            tt.sleep(5000);
        }catch (Exception e){

        }
        tt.start();
    }
}


MainActivity.java
public class MainActivity extends AppCompatActivity {

    private EditText ed;

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

        new Thread(new Runnable() {
            @Override
            public void run() {
                Back back = new Back();
                back.demo(new Back.CallBack() {
                    @Override
                    public void getstring(final int s) {
                        System.out.println(s);
                        ed = (EditText) findViewById(R.id.editText);
                        runOnUiThread(new Runnable() {
                            @Override
                            public void run() {
                                ed.setText("合計:" + s);
                            }
                        });
                    }
                });
            }
        }).start();
    }
}

0 件のコメント: