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

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

相关文章:

  • (C/S)架构、(B/S)架构
  • 粉尘环境下的智能生产革命 ——助力矿山行业实现高效自动化作业
  • 第九篇《行军篇》
  • 设计模式-单例模式
  • 【Javascript】计算器(Calculator)网页设计案例
  • NVIDIA Jetson Nano的国产替代,基于算能BM1684X+FPGA+AI算力盒子,支持deepseek边缘部署
  • 【Python项目】基于深度学习的电影评论情感分析系统
  • 机械臂路径规划方法综述(一)
  • 机器学习中的线性代数:奇异值分解 SVD
  • 汇编点亮LED
  • python文本处理openpyxl库安装与使用
  • 江科大51单片机笔记【9】DS1302时钟可调时钟(下)
  • 【五.LangChain技术与应用】【25.LangChain RAG检索器与完整案例:实战中的RAG应用】
  • Mac同时安装jdk8和jdk17,默认选择jdk8
  • 计算机组成与系统结构—袁春风阅读笔记(一)
  • 博查搜索API日调用量突破3000万次,达到Bing API的1/3。
  • 论文粗读——Isometric 3D Adversarial Examples in the Physical World
  • 【CSS】---- 纯 CSS 实现无限滚动轮播
  • Linux下AWK命令使用方法
  • JavaScript中的Math()
  • 上海小学生暑(寒)托班会增设开办期数、延长办班时间吗?团市委回应
  • 广东一驴友在英德野景点溺亡,家属被爆向21名同伴索赔86万
  • 回家了!子弹库帛书二、三卷将于7月首次面向公众展出
  • 高飞已任南航集团党组副书记
  • 俄乌直接谈判结束
  • 李成钢出席中国与《数字经济伙伴关系协定》成员部级会议