在 Fragment 中调用 Service 执行下载任务,但是失败了,代码如下,请问下是为什么啊

问题描述

在 Fragment 中调用 Service 执行下载任务,但是失败了,代码如下,请问下是为什么啊
public class JokeFragment extends Fragment implements ServiceConnection, SendCallBack {

        private RecyclerView mRecyclerView;
        private RecyclerAdapter mAdapter;
        private List<JokeData> mJokeDatas = new ArrayList<>();
        private JokeService mService;

        @Override
        public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
        }

        @Override
        public void onActivityCreated(@Nullable Bundle savedInstanceState) {
                super.onActivityCreated(savedInstanceState);
                Intent intent = new Intent(getActivity().getApplicationContext(), JokeService.class);
                getActivity().getApplicationContext().bindService(intent, this, Context.BIND_AUTO_CREATE);
        }

        @Override
        public void onResume() {
                super.onResume();
                mAdapter.notifyDataSetChanged();
        }

        @Nullable
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
                View view = inflater.inflate(R.layout.fragment_joke, container, false);
                mRecyclerView = (RecyclerView) view.findViewById(R.id.fragment_recyclerview);
                mAdapter = new RecyclerAdapter(getActivity(), mJokeDatas);
                mRecyclerView.setItemAnimator(new DefaultItemAnimator());
                mRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
                mRecyclerView.setHasFixedSize(true);
                mRecyclerView.setAdapter(mAdapter);
                return view;
        }

        @Override
        public void onResult(List<JokeData> datas) {
                mJokeDatas = datas;
        }

        @Override
        public void onError(String info) {
        }

        @Override
        public void onServiceConnected(ComponentName name, IBinder service) {
                mService = ((JokeService.LocalBinder) service).getService();
                if (mService!=null){
                        mService.setCallBack(this);
                        mService.Download();
                }

        }

        @Override
        public void onServiceDisconnected(ComponentName name) {
                mService = null;
        }

        @Override
        public void onPause() {
                super.onPause();
                if (mService != null) {
                        mService.setCallBack(null);
                        getActivity().getApplicationContext().unbindService(this);
                }
        }
}

解决方案

 if (mService != null) {
                    mService.setCallBack(null);
                    getActivity().getApplicationContext().unbindService(this);
            }

                            放 在OnDestory()中试试
时间: 2025-01-19 15:18:40

在 Fragment 中调用 Service 执行下载任务,但是失败了,代码如下,请问下是为什么啊的相关文章

android-Android中在activity中调用service中的某个对象的方法

问题描述 Android中在activity中调用service中的某个对象的方法 Android中在activity中如何调用service中的某个对象的方法!大神求助或者说如何在activity中获取到service中的某个对象! 解决方案 你这个问题问的有些问题啊,activity中获取到service中的某个对象!估计就是调用Service的方法吧,为Service写构造方法,New出Service对象后调用,或者直接写成静态方法直接用类名调用,再或者写接口,怎么调用都可以啊,和工具类调

如何在非action的普通java类中调用service和dao来操作数据库

问题描述 如何在非action的普通java类中调用service和dao来操作数据库 web程序用的框架是SSH的,在spring.xml中通过方式自动扫描service和dao,现有一个后台消息处理类,要在该类调用其他service和dao进行一些业务和数据库的操作,使用@Autowired private BaseDaoI baseDao;引用dao,在调用时报空指针错误,请教大神们该怎么解决. 解决方案 你所谓的"后台消息处理类"也的用注解标注它是一个Bean才行啊 解决方案二

popen php 管道-PHP中调用popen执行命令行,总返回segmentation fault。

问题描述 PHP中调用popen执行命令行,总返回segmentation fault. 代码如下: $cli = '/path/program getval 2>&1'; $handle = popen($cli, 'r'); $read = fread($handle, 1024); pclose($handle); 但是单独执行命令行就没有问题.请问是怎么回事?该怎么查这个问题? 解决方案 带的是完整路径么,路径中有空格等字符么?输出下路径看看. 解决方案二: 异常时,ulimit设置

PHP中CheckBox多选框上传失败的代码写法

用惯Java和其他语言的时候,表单上传只需要checkbox的name相同的时候就可以上传了 <input type="checkbox" name="checkbox" value="1"> 选项 <input type="checkbox" name="checkbox" value="2"> 选项 <input type="checkbox&

在C#中调用VBScript、javascript等脚本的实现代码_C#教程

一.使用MSScriptControl 到微软的网站上下载Windows Script Control,它是一个ActiveX(R) 控件,所以在.NET中使用我Interop了一下.下载安装完成后,新建一个C#的Windows应用程序项目,在解决方案资源管理器中选中引用节点,右键点击选择添加引用菜单,弹出添加引用对话框,单击浏览找到安装Windows Script Control的目录,选取msscript.ocx文件确定.那么在引用节点下会增加一个MSScriptControl组件,下面是他

asp.net中调用Office来制作3D统计图的实例代码_实用技巧

1.首先下载owc11 COM组件 http://www.microsoft.com/downloads/details.aspx?FamilyID=7287252c-402e-4f72-97a5-e0fd290d4b76&displaylang=en 2.注册owc11 在工程中添加 C:/Program Files/Common Files/Microsoft Shared/Web Components/11  文件下的owc11.dll引用 3.在工程中添加 using OWC11; 4.

快速解决fragment中onActivityResult不调用的问题

fragment 通过startActivityForResult方法启动另一个activity,返回时,不调用onActivityResult方法, 解决步骤: 1.  在Fragment所属的Activity中,重写了onActivityResult方法,确保加上super.onActivityResult @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { sup

android中的service本质是一个类还是一个方法还是一个对象

问题描述 android中的service本质是一个类还是一个方法还是一个对象 android中的service本质是一个类还是一个方法还是一个对象 当然我明白java中一切都是对象的这种说法 解决方案 service在哪里看到的,作为类的定义它是类,对它实例化创建了对象并且执行就是对象了. 解决方案二: java中一切都是对象 这个说法其实不准确.你能说java中的关键字是对象么? 解决方案三: Service(服务)是Android 核心组件之一,特点就是Android系统帮你实例化他的对象

android-Fragment中调用系统相机拍照获取照片后跳转问题,求大神···急急急··

问题描述 Fragment中调用系统相机拍照获取照片后跳转问题,求大神···急急急·· 在Fragment中调用系统相机拍照获取照片后,先跳到前一个activity或者桌面,然后再回到调用相机的Activity,这是啥原因呢?急急急·······在线等,求大神帮忙··· 解决方案 http://download.csdn.net/detail/zhai56565/5094196 解决方案二: 转来的··调用系统相机拍照和调用相册