一、创建一个新的Activity
1.android的四大组件都要在清单文件里面配置
2.如果想让你的应用有多个启动图标,你的activity需要这样配置
<intent-filter>
<action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
3.Activity下的lable和icon属性可以和Application节点的属性不一样,默认用Application节点下的属性
二、意图(intent)
隐式意图:通过指定一组动作或数据
Intent intent = new Intent();
//设置跳转的动作
intent.setAction("com.cn.testActivity");
intent.addCategory("android.intent.category.DEFAULT");
//开启activity
startActivity(intent);
显示意图:通过指定具体的包名和类名 。Intent intent = new Intent(this,TestActivity.class);
总结:1.开启自己应用的界面用显示意图。
2.开启其他应用(系统应用)用隐式意图。(电话拨号器)
3.显示意图更安全一些。
三、短信大全案例
public class MainActivity extends Activity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView lv = (ListView) findViewById(R.id.lv);
//设置数据
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getApplicationContext(), R.layout.item, R.id.tv_content, objects);
//设置数据适配
lv.setAdapter(adapter); //给ListView设置点击事件
lv.setOnItemClickListener(new OnItemClickListener() { @Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
//把点击条目的数据取出来
String content = objects[position]; Intent intent = new Intent();
//设置action
intent.setAction("android.intent.action.SEND");
intent.addCategory("android.intent.category.DEFAULT");
intent.setType("text/plain");
//传递数据
intent.putExtra("sms_body", content);
//跳转到发送短信的页面
startActivity(intent);
}
});
}
}
四、Activity的生命周期
1.onCreate():当activity启动的时候调用 onDestroy():当activity销毁的时候调用
3.onStart():当activity界面变成可见的时候调用 onStop():当activity界面变成不可见的时候调用
4.onResume() 当界面有按钮被点击,获取焦点的时候调用 onPause() 当界面按钮不可被点击,失去焦点的时候调用
横竖屏切换activity生命周期
android:screenOrientation="landscape" 横屏
android:screenOrientation="portrait" 竖屏
四、任务栈的概念(与activity有关)
1.进栈:打开一个activity,出栈:关闭一个activity
2.我们操作的activity永远是栈顶的activity。
3.activity的任务栈是用来维护用户操作体验。
4.应用程序退出时任务栈清空了。
5.一般情况下一个应用程序对应一个任务栈。
五、Activity的四种启动模式(理解中,后续补充)
1.standard
应用场景:浏览器的书签
2.singleTop:会检查任务栈栈顶的activity,如果存在则不会创建,直接复用。
3.singleTask:检查当前任务栈,
4.singleInstance:自己创建一个任务栈。
应用场景:来电页面