Activity
四大组件之一。
activity的创建要素:
1、创建的类要继承Activity
2、setContentView()引用一个布局文件
3、在清单文件里面进行配置
android:name="com.example.ex00_android.MainActivity"(包名+类名)
跳转到新的界面并传递消息:
A --> B
第一个界面:
一般是在按钮点击事件里:
String str = mEditText.getText().toString();
//获取一个意图对象
Intent intent = new Intent();
//设置要开启的activity
intent.setClass(MainActivity.this, SecondActivity.class);
//设置要传递的消息(消息都是键值对的形式传递的)
key:必须是字符串。
valuse: 字符串、基本类型、实现序列化的对象
intent.putExtra("text", str);
intent.putExtra("boolean", true);
intent.putExtra("int", 21);
//开启一个新的界面(activity)
startActivity(intent );
第二个界面:
//获取第一个界面传过来的意图对象
Intent intent = getIntent();
//通过key把意图对象里面的信息拿出来
String text = intent.getStringExtra("text");
A --> B ---> A
第一个界面:
一般是在按钮点击事件里:
Intent intent = new Intent();
intent.setClass(MainActivity.this, SecondActivity.class);
intent.putExtra("key", "第一个界面的消息");
//开启一个新的界面,并等待返回消息
startActivityForResult(intent , 0);
请求码:用来区分本界面请求事件
第二界面:
获取第一个界面传递过来的消息(看是否有消息传递)
//获取第一个界面传递过来的意图对象
Intent intent = getIntent();
String text = intent.getStringExtra("key");
//返回一个消息给第一个界面(一般在点击事件里面执行)
Intent data = new Intent();
data.putExtra("key2", "第二个界面返回的消息");
//返回一个消息到第一个界面
setResult(0, data );
//关闭当前界面
finish();
结果码:用来区分本界面的返回事件
第一个界面:
接收第二个界面返回的消息
//重写onActivityResult()
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
String string = data.getStringExtra("key2");
mTextView.setText(string);
}
requestCode 请求码
作用:用于区分不同的请求事件
使用方法:
1、 starteActivityforResult(意图,请求码)
2、在onActivityResulte()接收 ,判断
resulteCode 结果码
作用:用于区分不同的返回事件
使用方法:
1、setResult(结果码,意图)
2、在onActivityResulte()接收 ,判断
1、Activity的生命周期:
生命周期:一个对象从创建到销毁中间经历的状态。
通过方法的调用实现activity的状态迁移:
创建--> 运行(可见、可操作) onCreate() ,onStart()、 onResume();
运行--> 销毁 onPause()、 onStop(), onDestroy();
运行--> 暂停(可见、不可操作) onPause();
恢复到运行状态: onResume();
运行--> 停止(不可见、不可操作)onPause()、onStop()
恢复到运行状态:onRestart(),onStart()、onResume();
注意:当activity处于暂停或停止状态,更高优先级的应用需要内存的话,
activity所在的进程就有可能被杀死掉。
内存: RAM
外存: ROM sdcard
利用生命周期保存状态:
场景:应用程序被结束之后,
下次再启动的时候上一次的数据(状态)仍然存在
方法:数据持久化
Android读取sdcard的方法:
1、sdcard路径:“/mnt/sdcard”
2、权限:使用系统的硬件或服务的时候,就需要申请权限
读写sdcard的权限:
方法:
清单文件--> Permissiones ---> ADD(Uses Permissiones)
-->
"android.permission.READ_EXTERNAL_STORAGE"
"android.permission.WRITE_EXTERNAL_STORAGE"
步骤:
1、添加读写sdcard权限。
2、在onstop()内把数据保存起来:
保存到sdcard
3、在onstart()内读取数据,设置到界面上面