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企服之家,中国第一个企服评测及商务社交产业平台。 |