Android系统的四大组件:活动、服务、广播接收器、内容提供器。
在AndroidManifest.xml中注册活动:
日志类型 |
对应级别 |
内容 |
Log.v() |
Verbose |
最为琐碎、意义最小的日志 |
Log.d() |
Debug |
一些调试信息 |
Log.i() |
Info |
比较重要的数据 |
Log.w() |
Warm |
警告 |
Log.e() |
Error |
错误信息 |
Toast的使用实例:
Button button1=(Button) findViewById(R.id.XX); button1.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v){ Toast.makeText(this,"you clicked",Toast.LENGTH_SHORT).show(); } });
1, 获得button实例
2, 为button创建监听器
3, 在监听器中使用Toast方法
引申:自定义Toast布局的实例
LayoutInflater inflater=getLayoutInflater(); View layout=inflater.inflate(R.layout.XX,(ViewGroup)findViewById(R.id.XX)); Toast toast=new Toast(getApplicationContext()); toast.setDuration(Toast.LENGTH_LONG); toast.setView(layout); toast.show();
Menu的使用实例:
1, 首先在res文件夹下创建menu类型的文件夹并创建一个新的xml布局文件,在布局文件中加入若干个item控件
2, 在Mainactivity中重载onCreateOptionsMenu()方法,获得新布局文件的实例。
@Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main,menu); return true; }
显式Intent的使用实例:
Intent intent=new Intent(MainActivity.this,SecondActivity.class); startActivity(intent);
有明确的上下文和目标活动,“意图”明显
隐式Intent的使用实例:
帮助理解(Mainactivity.xml文件中):
Intent intent=new Intent("com.example.activitytest.ACTION_START"); startActivity(intent);
Intent intent=new Intent("com.example.activitytest.ACTION_START"); intent.addCategory("com.example.acitivitytest.MY_CATEGORY"); startActivity(intent);
帮助理解(Mainactivity.xml文件中):
更多的隐式intent 的用法:
Intent intent=new Intent("com.example.activitytest.ACTION_START"); intent.setData(Uri.parse("http://www.baidu.com"))//跳转到一个网址 intent.setData(Uri.parse("tel:10086"))//跳转到系统拨号界面 startActivity(intent);
活动中的数据传递:
1, 向下一个活动传递数据
在FirstActivity中:
Intent intent=new Intent("com.example.activitytest.ACTION_START"); String data="from MainActivity"; intent.putExtra("extra_data",data);
在SecondActivity中:
Intent intent=getIntent(); String data=intent.getStringExtra("extra_data"); Log.d("SecondActivity2",data);
2, 返回数据给上一个活动
上一个活动使用了startActivityForResult()方法,有两个参数,第一个参数是Intent,第二个参数是请求码。当前活动使用了setResult()方法,有两个参数,第一个参数用于向上一个活动返回处理结果,有两种选择:RESULT_OK、RESULT_CANCELED,第一个参数则把有数据的Intent传出去,最后用finish()销毁当前活动。
在FirstActivity中:
Intent intent=new Intent("com.example.activitytest.ACTION_START"); startActivityForResult(intent,1);
在SecondActivity中:
Intent intent=new Intent(); intent.putExtra("data_return","Hello FirstActivity"); setResult(RESULT_OK,intent); finish();
活动的生命周期:
活动的启动模式:
启动模式 |
描述 |
standard |
每当启动一个新的活动,它就会在返回栈中入栈,且处于栈顶的位置,无论这个活动是否已经在返回栈中存在,每次启动都会创建该活动的一个新的实例 |
singleTop |
当活动为处于栈顶位置时,会创建新的实例。如果已经在返回栈的栈顶,则不再创建新的实例,而是直接使用它 |
singleTask |
启动该活动是会检查返回栈中是否存在该活动的实例,如果有则直接使用,并把该活动之上的所有活动统统出栈,没有则创建一个新活动实例 |
singleInstance |
指定一个新的返回栈来管理这个活动* |
*个人认为这个描述不够准确