Android笔记之Activity
来源:互联网 发布:c语言函数声明和调用 编辑:程序博客网 时间:2024/06/01 09:36
Android笔记之Activity
一.活动生命周期
共四种状态:运行,暂停,停止,结束
如图中总共有7中方法:
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); System.out.println("onCreate"); } @Override protected void onStart() { super.onStart(); System.out.println("onStart"); } @Override protected void onResume() { super.onResume(); System.out.println("onResume"); } @Override protected void onPause() { super.onPause(); System.out.println("onPause"); } @Override protected void onStop() { super.onStop(); System.out.println("onStop"); } @Override protected void onDestroy() { super.onDestroy(); System.out.println("onDestroy"); } @Override protected void onRestart() { super.onRestart(); System.out.println("onRestart"); }
当应用程序处于不可见,则为停止状态。当应用程序处于半透明,则处于暂停状态。
二.Activity跳转和值传递
1.如何启动Activity?
1)新建一个类,扩展自Activity。
2)在AndroidManifest.xml中添加Activity,可在图形化界面的Application中添加,设置名字。
3)新建对应的xml文件,并在activity中用setContentView(R.id.Aty1);来与布局绑定。
4)可以在MainActivity添加按钮来启动活动。
5)用intent启动
public class MainActivity extends Activity { private Button btnStartAty1; private TextView tvOut; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tvOut = (TextView) findViewById(R.id.tvOut); btnStartAty1 = (Button) findViewById(R.id.btnStartAty1); btnStartAty1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent i = new Intent(MainActivity.this, Aty1.class); //这里需要写成MainActivity.this,只写this只访问到View.OnClickListener这个内部类 startActivityForResult(i); } }); }
2.如何关闭Activity?
用finish();方法关闭。
3.如何传递数据给另外一个Activity?
方法一:Intent用putExtra直接携带数据,如: i.putExtra(“txt”, “Hello Aty1”);
在另外一个Activity中用getIntent().getStringExtra(“txt”);来获取数据,如tvOut.setText(getIntent().getStringExtra(“txt”));
方法二:用Bundle传递比较复杂的数据
如:
Bundle data = new Bundle();data.putString("txt", "Hello Aty1"); i.putExtras(data);
在接收的A ctivity中如下接收
Bundle data = getIntent().getExtras();String txt = data.getString("txt"); tvOut.setText(txt);
如果需要接收的Activity传回数据
则需要用startActivityForResult(Intent intent, int requestCode);来启动Activity. intent用来在活动之间传递数据。requestCode是一个整数请求码,用来标明父活动的一个请求码。
接收的那一端需要写
Intent i = new Intent();i.putExtra("result", "Hello MainActiviy");//第一个参数我字符串的名字叫result,内容为Hello MainActiviy setResult(0, i);//0位startActivityForResult中的0对应
然后在主程序中从重写的onActivityResult(int requestCode, int resultCode, Intent data)方法来接收,requestCode为在startActivityForResult(Intent intent, int requestCode)中的请求码,resultCode为子活动通过setResult方法传入的一个返回码,一般为Activity基类中定义好的两个整型常量,RESULT_CANCELED和RESULT_OK. data为子活动传回来的数据。
如:
protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); String result = data.getStringExtra("result"); tvOut.setText(result); }
三.Activity的启动模式
1.standard模式
在同一个任务栈中实现多个Activity实例,界面会显示栈顶的实例。
2.singleTop模式
创建intent的时候栈顶有该模式的实例,则不会创建新实例,而是将intent传送给该实例。
3.singleTask模式
只能创建一个实例
4.singleInstance模式
Activity会在一个单独的Task栈中,而且这个栈只能包含这一个活动。
- Android笔记之Activity
- android学习笔记之Activity
- android之activity(笔记)
- Android入门笔记之Activity
- Android学习笔记之Activity
- Android学习笔记之Activity学习笔记
- android学习笔记之Activity生命周期
- Android学习笔记--四大组件之Activity
- Android开发笔记之《Activity与Intent》
- Android开发笔记之《Activity学习》
- Android学习笔记(一)之Activity
- Android 复习笔记之图解Activity
- android笔记之activity使用intent通信
- android笔记之activity与broadreceiver通信
- android开发笔记之activity属性
- android学习笔记之Activity生命周期详解
- Android四大组件之Activity复习笔记
- Android自学笔记之 Activity详解
- Android 网络通信框架Volley简介(Google IO 2013)
- fis文件压缩合并
- Log4j 2.3简易教程 - log4j2.xml
- android shape的使用
- Java学习--(二)使用文本文档写java程序
- Android笔记之Activity
- houdini中让shader支持udim texture
- R语言基础介绍
- 简单观察者模式
- Hibernate基础概念
- AngularJS 中 异步请求$http 对象的使用
- Vmware虚拟网络详解
- 【天池竞赛系列】资金流入流出预测思路
- Leetcode: Contains Duplicate III