Android四大组件(一)

Activity(四大组件之一)

  1. 如何创建Activity

    AS创建的

    package com.hp.demo;
    
    import androidx.appcompat.app.AppCompatActivity;
    
    import android.os.Bundle;
    import android.util.Log;
    
    public class MainActivity4 extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main4);
            Log.i("Activity的生命周期","--------onCreate()方法被调用");
        }
    
        @Override
        protected void onStart() {
            super.onStart();
            Log.i("Activity的生命周期","--------onStart()方法被调用");
        }
    
        @Override
        protected void onResume() {
            super.onResume();
            Log.i("Activity的生命周期","--------onResume()方法被调用");
        }
    
        @Override
        protected void onRestart() {
            super.onRestart();
            Log.i("Activity的生命周期","--------onRestart()方法被调用");
        }
    
        @Override
        protected void onPause() {
            super.onPause();
            Log.i("Activity的生命周期","--------onPause()方法被调用");
        }
    
        @Override
        protected void onStop() {
            super.onStop();
            Log.i("Activity的生命周期","--------onStop()方法被调用");
        }
    
        @Override
        protected void onDestroy() {
            super.onDestroy();
            Log.i("Activity的生命周期","--------onDestroy()方法被调用");
        }
    }

    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之间跳转的时候如何传值

                传单个的值

                        new对象

                        给对象属性赋值

                        使用intent.putExtra("","");

                        普通类型的值和字符串

                        使用intent.putExtra("","");//第一个参数:键;第二个参数:值

                        接收值

                        接收值的页面  Intent intent=getIntent(切记不能new)

                传对象

                        创建实体类,需要去实现接口Serializable(可序列化的)

4. Activity生命周期

        防止资源浪费、是APP更加灵活

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

        隐藏app(点击home) onPause() onStop()

        上滑:onDestroy()

        打开隐藏的app(重新点击app) onRestart() onStart() onResume()

        退出app(点击返回键) onPause() onStop onDestroy()

Service(四大组件之一)

  1. 什么是Service

    • 定义:

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

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

Activity :MainActivity.java        onCreate()-->setContentView()

                        activity_main.xml

Service :XXXXXXX.java

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

手机音乐播放器

  1. 创建Service

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

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

使用android Studio应该如何创建?

  1. 怎么调用Service

第一种方式:startService 访问者跟Service是不绑定的(访问者退出,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");
    }
};

解绑Service

​解绑Service是通过unbindService实现的,如下:
 btn_unbind_service.setOnClickListener (new OnClickListener () { @Override public void 
 onClick (View arg0) { if (binder != null) { unbindService (myServiceConn); } } });
  1. Service的声明周期

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

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

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值