当前位置: 首页 > article >正文

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方法要重新注册。


http://www.kler.cn/a/576631.html

相关文章:

  • 【selenium工具操作web页面中的下拉框元素 】
  • 机器学习的下一个前沿是因果推理吗?——探索机器学习的未来方向!
  • 工具介绍《HACKBAR V2》
  • leetcode面试题-------链表相交
  • c语言笔记 fgets
  • Maven匹配机制和仓库库设置
  • *算法中的数据结构(3)
  • 【神经网络】python实现神经网络(一)——数据集获取
  • 【hello git】git rebase、git merge、git stash、git cherry-pick
  • 实现Django和Transformers 构建智能客服大模型(模拟订单系统)
  • 【每日学点HarmonyOS Next知识】双向传值问题、子组件半径、VIdeo标签下载隐藏、字符串替换、路由问题
  • 2025年科技趋势深度解析:从“人工智能+”到量子跃迁的技术革命
  • Qt:多线程
  • 通过Nacos API实现微服务不间断部署
  • Linux中的序列化和反序列化与网络计算器
  • 2025系统架构师(一考就过):案例之五:典型架构、架构演化、人工智能、云计算、大数据
  • 数据库基础练习1
  • 什么是 kafka
  • 无人机应用探索:玻纤增强复合材料的疲劳性能研究
  • GOPATH和Go Modules模式