Atlas插件bundle与host通信之接口方式

在公共library中定义中间件接口

package cn.appblog.example_common.middleware;

public interface ISwitchMainTabListener {
    void onSwitchTab(int position);
}

单例封装接口监听器的Getter与Setter

package cn.appblog.example_common.middleware;

import android.content.Context;

public class MiddlewareHelper {
    private static MiddlewareHelper mMiddlewareHelper;
    private Context mContext;
    private ISwitchMainTabListener mSwitchMainTabListener;

    private MiddlewareHelper(Context context) {
        mContext = context;
    }

    public static MiddlewareHelper getInstance(Context context) {
        if (mMiddlewareHelper == null) {
            synchronized (MiddlewareHelper.class) {
                if (mMiddlewareHelper == null) {
                    mMiddlewareHelper = new MiddlewareHelper(context.getApplicationContext());
                }
            }
        }
        return mMiddlewareHelper;
    }

    public ISwitchMainTabListener getSwitchMainTabListener() {
        return mSwitchMainTabListener;
    }

    public void setSwitchMainTabListener(ISwitchMainTabListener listener) {
        this.mSwitchMainTabListener = listener;
    }
}

在host中设置监听

public class MainActivity extends AppCompatActivity implements ISwitchMainTabListener {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        MiddlewareHelper.getInstance(this).setSwitchMainTabListener(this);
    }

    @Override
    public void onSwitchTab(int position) {
        mViewPager.setCurrentItem(position, false);
    }   
}

在bundle中发送消息

MiddlewareHelper.getInstance(context).getSwitchMainTabListener().onSwitchTab(0);
上一篇 ViewPager使用FragmentPagerAdapter滑动Fragment动态加载Atlas bundle不显示问题
下一篇 Atlas加载bundle插件总结:ViewGroup中加载及本地startActivity方式
目录
文章列表
1 Android AES加解密(兼容Android7.0)
Android AES加解密(兼容Android7.0)
2
Gitlab HTTP 413 curl 22 Request Entity Too Large
Gitlab HTTP 413 curl 22 Request Entity Too Large
3
Android Gradle配置Debug和Release参数的方法
Android Gradle配置Debug和Release参数的方法
4
Java原生JSONObject实现JSON串与Java对象互转
Java原生JSONObject实现JSON串与Java对象互转
5
整合Nacos和Druid(password使用密文)出现新建连接被拒绝情况
整合Nacos和Druid(password使用密文)出现新建连接被拒绝情况
最新评论
一位WordPress评论者
一位WordPress评论者
2月12日
您好,这是一条评论。若需要审核、编辑或删除评论,请访问仪表盘的评论界面。评论者头像来自 Gravatar。