IT评测·应用市场-qidao123.com技术社区
标题:
android中activity1和activity2中吸收定时消息
[打印本页]
作者:
万有斥力
时间:
2025-3-7 07:58
标题:
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方法要重新注册,因为MyAnager是一个单例,如果不从新注册,消息只能在ativity2中收到。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 IT评测·应用市场-qidao123.com技术社区 (https://dis.qidao123.com/)
Powered by Discuz! X3.4