当前位置: 首页 > 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方法要重新注册。

http://www.dtcms.com/a/54151.html

相关文章:

  • (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()
  • SpringBoot优雅关机,监听关机事件,docker配置
  • gbase8s数据库检测非法字符
  • VSCode 配置优化指南:打造高效的 uni-app、Vue2/3、JS/TS 开发环境
  • JS—组成:2分钟掌握什么是ECMAScript操作,什么是DOM操作,什么是BOM操作
  • 在Blender中给SP分纹理组
  • GStreamer —— 2.6、Windows下Qt加载GStreamer库后运行 - “教程6:媒体格式和Pad功能“(附:完整源码)
  • 基于Spring Boot的多级缓存架构实现
  • C++学习(十四)(使用库)
  • JVM详解
  • C# 开发工具Visual Studio下载和安装