android 接口回调---java 接口回调(一看就会)

来源:互联网 发布:java异常处理finally 编辑:程序博客网 时间:2024/06/05 05:45
转载注意说明出处O(∩_∩)O~
//baseapplication
public class BaseApplication extends Application {    JieKou jieKou = null;    int time=0;    @Override    public void onCreate() {        super.onCreate();        new Thread() {            @Override            public void run() {                //开一个新线程计时                super.run();                try {                    /**                    *2017/4/14 16:20                    *Created by jiangchen                    *作用:一致循环发送数据,每隔一秒计时加 1                    */                    while (true) {                        sleep(1000);                        time++;                        if (jieKou!=null){                            jieKou.jiekouMethod(time+"");                        }                    }                } catch (InterruptedException e) {                    e.printStackTrace();                }            }        }.start();    }    /**     * 2017/4/14 16:20     * Created by jiangchen     * 作用:设置接口实例,接口需要一个实例来调用方法,而这个实例要从外面传进来     * 谁实现了这个接口,谁就拥有这个实例     */    public void setJieKouShiLi(JieKou jieKouShiLi) {        //jieKou---这里面的实例;jieKouShiLi---外面实现这个接口传过来的实例        jieKou=jieKouShiLi;    }

}

//主Activity

public class MainActivity extends AppCompatActivity implements JieKou {    private TextView tv;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        tv = (TextView) findViewById(R.id.tv);        /**         *2017/4/14 16:29         *Created by jiangchen         *作用:因为baseapplication里面需要一个实例,所以要将我们这里实现的实例传过去         */        //这样获取baseapplication实例        BaseApplication baseApplication;        baseApplication = (BaseApplication) getApplication();        // 然后用过baseapplication里面的setJieKouShiLi()方法将接口实例传过去        baseApplication.setJieKouShiLi(this);    }    /**     * 2017/4/14 16:29     * Created by jiangchen     * 作用:在这里实现的,但是调用是在baseapplication里面完成的     */    @Override    public void jiekouMethod(final String str) {        //那个调用的方法就把这个str传过来啦  O(∩_∩)O~~~        runOnUiThread(new Runnable() {            @Override            public void run() {                //子线程不能刷新UI,只能这样将就一下啦                tv.setText(str);            }        });    }}

//接口

public interface JieKou {    void jiekouMethod(String str);}

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"    package="com.vkeline.jiekouhuidiao"><!--这里的application的name属性要改成自己写的那个的!!!!!!!!!-->    <application        android:name=".BaseApplication"        android:allowBackup="true"        android:icon="@mipmap/ic_launcher"        android:label="@string/app_name"        android:supportsRtl="true"        android:theme="@style/AppTheme">        <activity android:name=".MainActivity">            <intent-filter>                <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.LAUNCHER" />            </intent-filter>        </activity>    </application></manifest>


3 0
原创粉丝点击