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

    xiaoxiao2021-04-19  115

    转载注意说明出处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>

    转载请注明原文地址: https://ju.6miu.com/read-675989.html

    最新回复(0)