开源夏令营第七周-去掉左侧抽屉栏(2)

紧接上篇--

上篇在讲对于账户(Accounts)的操作,这次便是对上传任务(UploadTasks)的改动:

原来Seadroid是在一个BrowserActivity里,用TabFragment和UploadTasksFragment来切换FIies和UploadTasks。而现在要做的就是把UploadTasksFragment改成UploadTasksActivity。

这样不得不提及Activity和Fragment的生命周期问题,如图:


其中:

onAttach()
   当Fragment已经跟Activity关联上的时候,这个回调被调用。Activity会作为onAttach()回调方法的参数来传递。


onCreateView()
   创建跟Fragment关联的视图层时,调用这个回调方法。


onActivityCreated()
   当Activity的onCreate()方法执行完之后,调用这个回调方法。


onDestroyView()
   当跟Fragment关联的视图层正在被删除时,调用这个回调方法。


onDetach()
   当从Activity中解除Fragment的关联时,调用这个回调方法。


所以简单来说就是把Fragment的步骤合并成Activity的步骤。具体该怎么合并,我觉得参照上图应该不是难事。


但是仅仅是合并了并不能解决问题。因为一些功能是写在BrowserActivity中的,要把它们给拉出来。因为Seadroid是基于网络层面的App,在程序运行开始就会在BrowserActivity中开启一个TransferService。这个service并不会随着BrowserActivity的Destory而消失,并且在退出App是服务也是开启的(为了其他功能的需要)。所以在UploadTasksActivity中也要接受TransferService发出的广播,所以便在UploadTasksActivity也加入了对TransferService的连接:

private ServiceConnection mConnection = new ServiceConnection() {
        @Override
        public void onServiceConnected(ComponentName className, IBinder service) {
            TransferBinder binder = (TransferBinder) service;
            txService = binder.getService();
            Log.d(DEBUG_TAG, "bind TransferService");
        }

        @Override
        public void onServiceDisconnected(ComponentName arg0) {
            txService = null;
        }
    };

具体改动比较多,在这里就不一一叙述,感兴趣的朋友可以跳转至我的 CSDNCODE

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值