Activity、Service学习

Activity生命周期

https://www.runoob.com/wp-content/uploads/2015/08/18364230.jpg

Activity间的数据传递

传一个数据:

存:

Intent it1 = new Intent(A.this, B.class);

It1.putExtra(“key”, value);

startActivity(it1);

取:

Intent it2 = getIntent();

getStringExtra(“key”);//相应类型对应修改

传多个数据:

存:

Intent it1 = new Intent(A.this, B.class);

Bundle bd = new Bundle();

bd.putInt(“num”, 1);

bd.putString(“lala”, “啦啦”);

It1.putExtras(bd);

startActivity(it1);

取:

Intent it2 = getIntent();

Bundle bd = it2.getExtras();

Int n = bd.getInt(“num”);

String d = bd.getString(“lala”);

多个Activity交互

  • 使用startActivityForResult(Intent intent, int requestCode)来启动一个Activity
  • 在启动的Activity中重写onActivityResult(int reauestCode, int resultCodeIntentdata) requestCode是用于区分在该Activity中不同的启动方式,比如有两个不同的按钮,启动的是同一个Activity.传递的数据可能不同,这里就可以用这个requestCode来区别 resultCode:Activity通过setResult)返回的码
  • 在子Activity重写:setResult(int resultCode, Intent data)

随时关闭所有Activity

https://www.runoob.com/wp-content/uploads/2015/08/59443692.jpg

public class ActivityCollector {

    public static LinkedList<Activity> activities = new LinkedList<Activity>();

    public static void addActivity(Activity activity)

    {

        activities.add(activity);

    }

    public static void removeActivity(Activity activity)

    {

        activities.remove(activity);

    }

    public static void finishAll()

    {

        for(Activity activity:activities)

        {

            if(!activity.isFinishing())

            {

                activity.finish();

            }

        }

    }

}

Service生命周期

https://www.runoob.com/wp-content/uploads/2015/08/11165797.jpg

ActivityService通信

Service Activity进行通信,他们之间交流的媒介就是Service中的onBind()方法。返回一个我们自定义的Binder对象。

基本流程:

1.自定义Service中,自定义一个Binder类,然后将需要暴露的方法都写到该类中。

2.Service类中,实例化这个自定义Binder类,然后重写onBind()方法,将这个Binder对象返回。

3.Activity类中实例化一个ServiceConnection对象,重写onServiceConnected()方法,然后 获取Binder对象,然后调用相关方法即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值