Activity

2019-05-26  本文已影响0人  米花噗噗

1.Activity与Activity之间的通信

(1).Intent/Bundle

①可通过startActivity来开启

②也可通过startActivityForResult来开启活动同时传递结果

(2).类静态变量

(3).全局变量

2.Activity与Fragment之间的通信

(1).Activity将数据传递给Fragment

①Bundle可以通过Bundle的key,value值绑定给另一个Activity

②直接通过Activity中定义方法,然后fragment直接获取到方法

Activity中:   向fragment传递数据

Fragment中:   拿到它的数据

(2) .Fragment将数据传递给Activity

①在fragment中定义一个内部回调接口,在让包含Activity的Fragment实现这个接口,然后这个Fragment就可以调用这个接口的方法

②fragment中的方法onAttach();

当fragment添加Activity的时候会调用onAttach(),可以在这个这个方法中检查是否实现fragment中定义的内部接口

③调用OnDetach()方法,这个时候要把传递过来的activity释放掉,要不然会影响Activity的销毁,导致内存泄漏

3. Activity与Service之间的通信

(1)绑定服务利用ServiceConnection类(成功和失败)

成功的时候会调用onserviceConnection

Activity实现ServiceConnection接口的时候会重写一下方法

①首先创建MyBinder对象,在OnServiceConnection中获取这个对象

②利用写好的setData进行传递数据

(2)通过Intent进行传值

①.再启动一个Activity的时候会构建Intent对象向Service 传值

startService()和stopService()都会传入一个Intent ,通过Intent传入一些参数

startService一个是key,一个是value值

startService()启动服务,stopService()终止服务

Activity中的实现:

Service中的实现:

onStartConmmand接收从Activity传过来的方法

   内部会传入key值

上一篇下一篇

猜你喜欢

热点阅读