IT评测·应用市场-qidao123.com技术社区

标题: android中activity1和activity2中吸收定时消息 [打印本页]

作者: 万有斥力    时间: 2025-3-7 07:58
标题: android中activity1和activity2中吸收定时消息
android中activity1和activity2中吸收定时消息

业务类
  1. import java.util.Timer;
  2. import java.util.TimerTask;
  3. public class MyAnager {
  4.     private MyAnager() {
  5.     }
  6.     private static MyAnager instance;
  7.     //回调接口onRecvTask
  8.     public interface OnMsgListener {
  9.         void onRecvTask(String authId);
  10.     }
  11.     public void setOnMsgListener(OnMsgListener listener) {
  12.         this.mOnMsgListener = listener;
  13.     }
  14.     private OnMsgListener mOnMsgListener;
  15.     //实例
  16.     public static MyAnager get() {
  17.         if (instance == null) {
  18.             synchronized (MyAnager.class) {
  19.                 if (instance == null) {
  20.                     instance = new MyAnager();
  21.                 }
  22.             }
  23.         }
  24.         return instance;
  25.     }
  26.     //定时
  27.     public void time(){
  28.         Timer timer = new Timer();
  29.         timer.schedule(new TimerTask() {
  30.             @Override
  31.             public void run() {
  32.                 if (mOnMsgListener != null) {
  33.                     mOnMsgListener.onRecvTask("你好");
  34.                 }
  35.             }
  36.         }, 3000, 3000); // 初始延迟 3 秒,周期 3 秒
  37.     }
  38.     //初始定时方法
  39.     public void intnListener() {
  40.         time();
  41.     }
  42. }
复制代码

启动发消息
  1. public class MyApplication extends MultiDexApplication {
  2.     @Override
  3.     public void onCreate() {
  4.         super.onCreate();
  5.         MyAnager.get().intnListener();
  6.     }
  7. }
复制代码

ativity1中吸收消息
  1. public class LoginActivity extends AppCompatActivity implements MyAnager.OnMsgListener {
  2.     @Override
  3.     protected void onCreate(Bundle savedInstanceState) {
  4.         super.onCreate(savedInstanceState);
  5.         setContentView(R.layout.activity_login);
  6.         MyAnager.get().setOnMsgListener(LoginActivity.this);
  7.         TextView tvJump = findViewById(R.id.activity_login);
  8.         tvJump.setOnClickListener(new View.OnClickListener() {
  9.             @Override
  10.             public void onClick(View v) {
  11.                 Intent intent = new Intent(LoginActivity.this, LoginActivity2.class);
  12.                 startActivityForResult(intent, 1);
  13.             }
  14.         });
  15.     }
  16.     @Override
  17.     public void onRecvTask(String xx) {
  18.         BaseUtil.d("=======LoginActivity1========="+xx);
  19.     }
  20.     @Override
  21.     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  22.         super.onActivityResult(requestCode, resultCode, data);
  23.         MyAnager.get().setOnMsgListener(LoginActivity.this);
  24.     }
  25. }
复制代码
ativity2中吸收消息
  1. public class LoginActivity2 extends AppCompatActivity implements MyAnager.OnMsgListener{
  2.     @Override
  3.     protected void onCreate(Bundle savedInstanceState) {
  4.         super.onCreate(savedInstanceState);
  5.         setContentView(R.layout.activity_login2);
  6.         MyAnager.get().setOnMsgListener(LoginActivity2.this);
  7.     }
  8.     @Override
  9.     public void onRecvTask(String xx) {
  10.         BaseUtil.d("=======LoginActivity2========="+xx);
  11.     }
  12. }
复制代码

ativity1和ativity2初始化的时候都要注册监听并且回调监听。ativity1跳转到ativity2,从ativity2跳转到ativity1的时,ativity1的onActivityResult方法要重新注册,因为MyAnager是一个单例,如果不从新注册,消息只能在ativity2中收到。



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com技术社区 (https://dis.qidao123.com/) Powered by Discuz! X3.4