android中activity1和activity2中接收定时消息

android中activity1和activity2中接收定时消息

业务类

import java.util.Timer;
import java.util.TimerTask;

public class MyAnager {
    private MyAnager() {
    }

    private static MyAnager instance;

    //回调接口onRecvTask
    public interface OnMsgListener {

        void onRecvTask(String authId);
    }

    public void setOnMsgListener(OnMsgListener listener) {
        this.mOnMsgListener = listener;
    }


    private OnMsgListener mOnMsgListener;

    //实例
    public static MyAnager get() {
        if (instance == null) {
            synchronized (MyAnager.class) {
                if (instance == null) {
                    instance = new MyAnager();
                }
            }
        }
        return instance;
    }


    //定时
    public void time(){
        Timer timer = new Timer();
        timer.schedule(new TimerTask() {
            @Override
            public void run() {
                if (mOnMsgListener != null) {
                    mOnMsgListener.onRecvTask("你好");
                }
            }
        }, 3000, 3000); // 初始延迟 3 秒,周期 3 秒

    }

    //初始定时方法
    public void intnListener() {
        time();
    }

}

启动发消息

public class MyApplication extends MultiDexApplication {

    @Override
    public void onCreate() {
        super.onCreate();

        MyAnager.get().intnListener();
    }
}

ativity1中接收消息

public class LoginActivity extends AppCompatActivity implements MyAnager.OnMsgListener {


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
        MyAnager.get().setOnMsgListener(LoginActivity.this);
        TextView tvJump = findViewById(R.id.activity_login);
        tvJump.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(LoginActivity.this, LoginActivity2.class);
                startActivityForResult(intent, 1);
            }
        });
    }

    @Override
    public void onRecvTask(String xx) {
        BaseUtil.d("=======LoginActivity1========="+xx);
    }



    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        MyAnager.get().setOnMsgListener(LoginActivity.this);

    }
}

ativity2中接收消息

public class LoginActivity2 extends AppCompatActivity implements MyAnager.OnMsgListener{


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login2);
        MyAnager.get().setOnMsgListener(LoginActivity2.this);
    }

    @Override
    public void onRecvTask(String xx) {
        BaseUtil.d("=======LoginActivity2========="+xx);
    }

}

ativity1和ativity2初始化的时候都要注册监听并且回调监听。ativity1跳转到ativity2,从ativity2跳转到ativity1的时,ativity1的onActivityResult方法要重新注册。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值