首页 > 解决方案 > 如何在服务的主要活动中使用相同的对象

问题描述

我想在我的主 Activity 中使用 Service 中的 ArrayAdapter 和 MediaRouter 对象。什么是最好的解决方案?

  public class MyActivity extends Activity {
    MediaRouter router;
    ArrayAdapter<RouteInfoWrapper> adapter;
    ListView list;

    MediaRouter.Callback callback = new MediaRouter.Callback() {
        @Override
        public void onRouteAdded(MediaRouter router, MediaRouter.RouteInfo route) {
            super.onRouteAdded(router, route);
            if (route.isDefault())
                return;
            adapter.add(new RouteInfoWrapper(route));
        }
    };

    public static class RouteInfoWrapper {
        MediaRouter.RouteInfo routeInfo;
        public RouteInfoWrapper(MediaRouter.RouteInfo routeInfo) {
            this.routeInfo = routeInfo;
        }

        @Override
        public String toString() {
            return routeInfo.getName();
        }
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        adapter = new ArrayAdapter<RouteInfoWrapper>(this, android.R.layout.select_dialog_item, android.R.id.text1);
        router = MediaRouter.getInstance(this);
        for (MediaRouter.RouteInfo route: router.getRoutes()) {
            if (route.isDefault())
                continue;
            adapter.add(new RouteInfoWrapper(route));

我想将适配器、回调和路由器对象共享给服务。

标签: android

解决方案


推荐阅读