Activity与Service

Activity(四大组件之一)

  1. 如何创建Activity

     

    1. xml文件

    2. java文件,并在java文件中 继承 AppCompatActivity,在onCreate()方法中,setContentView() ,将java文件跟xml文件连接在一起

    3. androidManifest.xml文件中注册Activity

  2. AS创建Activity省略了哪些过程?(理解)

  3. Acitivity之间的跳转

    假设 MainActivity.java MainActivity2.java

    从MainActivity.java 跳转到 MainActivity2.java

    // 常用的方法
    Intent intent = new Intent(MainActivity.this, MainActivity2.class);
    startActivity(intent);
    ​
    // 另外一种方法
    Intent intent = new Intent();
    intent.setClass(MainActivity.this, MainActivity2.class);
    startActivity(intent);

    从MainActivity2.java 跳转到 MainActivity.java

    Intent intent = new Intent(MainActivity2.this, MainActivity.class);
    startActivity(intent);
    ​
    // 如果从MainActivity2.java 跳转到 MainActivity.java,MainActivity2不需要存活了
    finish();

  4. Activity之间跳转的时候如何传值

传单个的值

主页面
Intent intent=new Intent(MainActivity.this,MainActivity2.class);
intent.putExtra("张三","张三");
startActivity(intent);
​
跳转到的页面

Intent intent=getIntent();//不能new
传对象
先定义一个测试类
import java.io.Serializable;
​
public class Test implements Serializable {
    private String name;
    private int age;
    private String sex;
​
    public Test(){}
​
    public Test(String name,int age,String sex){
        this.name=name;
        this.age=age;
        this.sex=sex;
    }
​
    public String getName() {
        return name;
    }
​
    public void setName(String name) {
        this.name = name;
    }
​
    public int getAge() {
        return age;
    }
​
    public void setAge(int age) {
        this.age = age;
    }
​
    public String getSex() {
        return sex;
    }
​
    public void setSex(String sex) {
        this.sex = sex;
    }
}
​
主页面
Test test=new Test("张三",18,"有罪");
intent.putExtra("name",test);
startActivity(intent);

 

目标页面
Test test= (Test) intent.getSerializableExtra("name");
        int age= test.getAge();
        String name=test.getName();
        String sex=test.getSex();

4. Activity生命周期

初次打开app onCreate() onStart() onResume()

隐藏app onPause() onStop()

打开隐藏的app onRestart() onStart() onResume()

退出app onPause() onStop onDestroy()

Service

  1. 什么是Service

    • Service是Android四大组件之一 (必须在androidManifest.xml中进行注册)

    • 可以在后台执行长时间运行操作而没有用户界面的应用组件

Activity MainActivity.java

activity_main.xml

Service XXXXXXX.java

Service在现阶段的APP什么位置有体现?

手机音乐播放器

  1. 创建Service

不使用Android Studio应该如何创建?

1. 创建java文件,继续Service
1. 在AndroidManifest.xml中进行注册
  1. 怎么调用Service

第一种方式:startService 访问者跟Service是不绑定的

启动Service

Intent intent = new Intent(MainActivity.this, MyService.class);
startService(intent);

关闭Service

Intent intent = new Intent(MainActivity.this, MyService.class);
stopService(intent);

第二种方式:bindService 访问者跟Service是绑定,访问者一旦退出了,Service也就终止了。

绑定service

Intent intent = new Intent(MainActivity.this, MyBindService.class);
bindService(intent, serviceConnection, Context.BIND_AUTO_CREATE);     
public ServiceConnection serviceConnection = new ServiceConnection() {
    @Override
    public void onServiceConnected(ComponentName name, IBinder service) {
        Log.i("ServiceConnection", "onServiceConnected");
    }
​
    @Override
    public void onServiceDisconnected(ComponentName name) {
        Log.i("ServiceConnection", "onServiceDisconnected");
    }
};

  1. Service的声明周期

    startService的方式 onCreate() onStartCommand() onDestroy()

    bindService的方式 onCreate() onBind() onUnBind() onDestroy()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值