Activity(四大组件之一)
-
如何创建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省略了哪些过程?(理解)
-
xml文件
-
java文件,并在java文件中 继承 AppCompatActivity,在onCreate()方法中,setContentView() ,将java文件跟xml文件连接在一起
-
androidManifest.xml文件中注册Activity
-
-
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();
-
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(四大组件之一)
-
什么是Service
-
定义:
-
Service是Android四大组件之一 (必须在androidManifest.xml中进行注册)
-
可以在后台执行长时间运行操作而没有用户界面的应用组件
-
Activity :MainActivity.java onCreate()-->setContentView()
activity_main.xml
Service :XXXXXXX.java
Service在现阶段的APP什么位置有体现?
手机音乐播放器
-
创建Service
不使用Android Studio应该如何创建?
1. 创建java文件,继续Service 2. 在AndroidManifest.xml中进行注册
使用android Studio应该如何创建?
-
怎么调用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); } } });
-
Service的声明周期
startService的方式 onCreate()、 onStartCommand() 、onDestroy()
bindService的方式 onCreate()、 onBind()、 onUnBind()、 onDestroy()