Activity(四大组件之一)
只要是四大组件之一的都需要在AndroidManifest.xml文件中进行注册
继承AppCompatActivity,在onCreate()方法中,setcontentview(),将java文件和xml文件连接在一起
AndroidManifest.xml文件中注册activity
activity之间的跳转
//最基础的使用方式
Intent intent=new Intent (Mainactivity.this,Minactivity.class)//定义从哪到哪
startactivity(intent)
//activity的跳转方式有两个
//假设mainactivit.java MainActivity2.java
Intent intent =new Intent(MainActivity.this,目标页面名称.class)
startActivity(intent);
//更加简洁高效的跳转方法(从1跳转到2)
Intent intent =new Intent();
intent.setCless(MainActivity.this,目标页面名称.class)
startActivity(intent);
//更加简洁高效的跳转方法(从2跳转到1)第二种情况使用.finish
intent.setCless(MainActivity.this,目标页面名称.class)
startActivity(intent);
//登录----》注册------》登录-------》还需要返回到注册页面吗?
//绝对不行,登录后,注册页面就不在需要了
//可以使用
.finish();
//虽然点击的时候可以正常跳转,单是实际上是创建了一个新的页面,就得页面已经“死”掉了
activity传值跳转
- 传对象
-
//intent接收对象 1. ----------------传对象 首先创建你要传值的数据的实体类,实现Seriable(可序列化)接口 2.然后new对象,在对应Activity创建出对象 实体类 实体类=new 实体类(值,值,值,值); intent.putExtra("键",值)//相当于吧对象传过去 //接收 // 接受时需要判定传过来的值是什么类型的,根据传的值选择 Intent intent =getIntent(); Intent intent =getString(); 实体类 实体类名=intent.getSerializableExtra("名字") 类名.get值 输出Toast.MakeText();
-
- 传普通数据类型和字符串(int,byte, char, float, double, long, boolean,string )
-
4.2.1 携带基本类型和String
我们直接看intent的方法。
Intent intent = new Intent(getApplicationContext(), SendParamsDemo.class);
intent.putExtra("id", 100);
intent.putExtra("isShow", true);
intent.putExtra("Msg", "Input string");
startActivity(intent);
intent的 putExtra 方法,可以传入参数。它接受1个String作为key,然后是具体参数。 -
如何在接收上个页面传递过来的值?
Intent intent = getIntent();
int i = intent.getIntExtra("isShow", 0);
boolean b = intent.getBooleanExtra("isShow", false);
String str = intent.getStringExtra("Msg");
-
activity的生命周期
我们为什么要有activi的生命周期?
-为了防止资源浪费,让android在不同的状态去干不同事情
先简单的来看一下activity的生命状态,了解手机在不同的操作下activity 的状态
关于android在不同的操作下执行的方法
oncreat(1)--只会运行一次(相当于java的静态方法
onstart(2)
onResume(3)
onpause(5)
onstop(6)
onDestory(7)
onrestart(4)
//使用生命周期
初次打开app:(1).(2).(3)
隐藏app(点击返回):(5),(6)(7)
打开隐藏的app:(4),(2),(3)
退出:(5),(6),(7)
多任务栏结束app:onDestory
-
activity组成:
-
MainActivity.java onCreat-----> setContenview()
-
activity_main.xml
-
-
现阶段Service在哪里体现?
-
手机音乐播放器
-
-
Service
-
创建后,必须在androidManifest.xml中进行注册
-
什么是service:
-
Service没有页面
-
安卓四大组件之一,重点他可以在后台长时间的运行操作而没有用户页面和应用组件
-
-
service的作用
-
可以在后台继续运行需要的服务
-
-
service的使用:
-
service有两种启动方法
-
startService和bindService
-
startService:不和访问者绑定
-
Intent intent=new Intent(Stage2Activity.this,MyService.class);
startService(intent);
-
-
bindService:和访问者绑定,访问者退出Service随之结束
-
绑定启动的方式:
bindService(Intent service.ServiceConnection conn,int flags);
参数说明:
service:该参数通过intent指需要启动的service
conn:该参数是ServiceConnection对象,系统会调用ServiceConnection中的onServiceConnection()方法
flag:指定绑定石是否自动创建service,BIND_AUTO_CREATE表示自动创建,为“0”的时候表示不创建
-
-
关闭service的方式
-
Intent intent=new Intent(Stage2Activity.this,MyService.class);
stopService(intent);
-
-
-
-
-
创建服务(service)的方式
-
1.创建普通的java文件,继承Service
-
2.在androidManifest中注册(File-->New---->Service),android studio会自动帮我们注册service服务
-
-
使用android studio中创建的方式
-
Intent intent=new Intent(Stage2Activity.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","onSserviceDisconnected"); } }
生命周期:
onCreatedang service 第一次被创建时,由系统调用
Service::onCreat(),onStartCommand(),onDiestory方法
BindService:完整的bind周期会经历:oncreat()onBind()onUnbind(),onDestory()方法。为一个简单的周期
-
-