栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Aadroid的Activity和Service

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Aadroid的Activity和Service

Activity(四大组件之一)
  1. 如何创建Activity

    AS创建的(省略很多过程)(必须掌握)

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

    1. xml文件

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

    3. androidManifest.xml文件中注册Activity

  2. 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();

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

                传单个的值

          1.定义值

Button but_cz1=findViewById(R.id.but_cz1);
but_cz1.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        Intent intent=new Intent(MainActivity.this,MainActivity3.class);
        intent.putExtra("name","张三");
        intent.putExtra("age",18);
        intent.putExtra("id",1);
        startActivity(intent);
    }
});

         2.操作值

public class MainActivity3 extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main3);

        Intent intent= getIntent();
        String name=intent.getStringExtra("name");
        int age=intent.getIntExtra("age",18);
        int id=intent.getIntExtra("id",1);

        Toast.makeText(MainActivity3.this,"名字:"+name+",年龄:"+age+",编号:"+id,Toast.LENGTH_SHORT).show();


    }
}

                传对象

        1.创建一个对象

private int id;
private String name;
private String sex;
private int age;

public Person(){

}

public Person(int id, String name, String sex, int age){
    this.id = id;
    this.name = name;
    this.sex = sex;
    this.age = age;
}


public int getId() {
    return id;
}

public void setId(int id) {
    this.id = id;
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public String getSex() {
    return sex;
}

public void setSex(String sex) {
    this.sex = sex;
}

public int getAge() {
    return age;
}

public void setAge(int age) {
    this.age = age;
}

        2.传对象

btn_main3.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Intent intent = new Intent(MainActivity.this, MainActivity3.class);
        Person person = new Person(1, "李四","女",18);
        intent.putExtra("person",person);
        startActivity(intent);
    }
});

        3.操作对象

public class MainActivity3 extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main3);

        Intent intent = getIntent();
        Person person = (Person) intent.getSerializableExtra("person");
        String name = person.getName();
        String sex = person.getSex();
        int age = person.getAge();

        Log.i("序列化接收到的值:","name:"+name+",sex:"+sex+",age:"+age);
    }
}

​    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什么位置有体现?

手机音乐播放器

2. 创建Service

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

        1. 创建java文件,继续Service
        2. 在AndroidManifest.xml中进行注册

使用android Studio应该如何创建?

        

3.怎么调用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");
    }
};

4.Service的声明周期

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

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1020893.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号