安卓回調機制-一個非常簡單的demo

看log就明白了,簡單易懂,耶!
比如,媽媽問你幾點睡呀?你可能玩着遊戲不理媽媽,過會反應過來要捱揍了,趕緊隨意報了個時間“十二點”,邊忙家務邊等待你回覆的媽媽聽到你報的時間氣沖沖拿着擀麪杖衝過來了。。。。。。就倆類,可以複製運行下更直觀
SendMess:-- 兒子
1、新建一個接口Aim,在其中聲明一個方法toSleep(String time)代表它可以做什麼,催睡覺用的。
2、聲明一個方法,傳入接口對象
3、寫構造方法,判斷當傳入接口實例化對象存在的時候才執行信息
WaitActivity:--媽媽
1、實現接口,實例化接口對象,處理接口回調信息。

兒子:

public class SendMess {
    Aim aim;


    interface Aim{
        void toSleep(String time);
    }

    public void setAim(Aim aim){
        this.aim = aim;
    }

    public SendMess(){
        new Thread(new Runnable() {
            @Override
            public void run() {
                try {
                    Thread.sleep(5000);
                    if(null!=aim){
                        Log.e("you", "十二點");
                        aim.toSleep("十二點");

                    }
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }).start();
    }

}

媽媽:

public class WaitActivity extends AppCompatActivity implements SendMess.Aim {

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

        Log.e("mother:", "what is the time to sleep? tell me  baby");

        SendMess sendMess = new SendMess();
        sendMess.setAim(this);
    }

    @Override
    public void toSleep(String time) {
        switch (time) {
            case "十二點":
                Log.e("mother", "看你就是欠揍!");
                break;
            default:
                Log.e("ysj", "good baby");
                break;
        }
    }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章