发表于: 2016-10-12 15:30:22
0 726
今天:
今天早上学习了一下Activity的生命周期,了解了一个Activity在创建到结束,创建到获取焦点,弹出完全覆盖或者不完全覆盖的窗口的生命周期,
跳转到另外一个Activity并返回的生命周期,看的有点懵懵懂。参考的两个博客。以后经常看看
http://blog.csdn.net/lonelyroamer/article/details/8927940 //1.1、Activity的生命周期
http://blog.csdn.net/liuhe688/article/details/6733407 //基础总结篇之一:Activity生命周期
自己尝试了一下
我运行的Nexus 5 所以启动和退出的时候会出现未知缓冲的问题
Log.i(TAG,"MainActivity- - - >onStart");
启动一个Activity
退出
Home键返回桌面,Activity处于停止状态Stopped或者被完全遮挡住
但是保留所有状态和成员信息
启动Activity之后Home返回然后再打开这个Activity
使用android:theme="@android:style/Theme.DeviceDefault.Dialog"
从第一个Activity中的Button,Intent到第二个半透明弹窗(失去焦点)
返回第一个Activity(获取焦点)
引入一个图
Intent:Intent用来协助完成Android各个组件之间的通讯
Intent实现页面之间的跳转有两种
//直接启动一个页面
1.startAvtivity(intent)
FActivity作为首页面
public class FActivity extends Activity {
private Button bt1;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.factivity);
bt1 = (Button) findViewById(R.id.button_first);
bt1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(FActivity.this,SecondActivity.class);
startActivity(intent);
}
});
}
}
//有返回值的页面跳转
2.startActivityForResult(intent,requestCode);
onActivityResult(int requestCode,int resultCode,Intent data)
setResult(resultCode,data);
requestCode: 请求标示
resultCode: 其他页面的返回标示
data: 其他页面的回传数据
bt2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//跳转至第二个页面
Intent intent = new Intent(FActivity.this,SecondActivity.class);
startActivityForResult(intent,1);
}
});
}
第二个页面的回传
public class SecondActivity extends Activity{
private Button bt;
private String content = "我是第二个页面的返回值";
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.secondactivity);
bt = (Button) findViewById(R.id.button);
bt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//回传到第一个页面的是一个Intent对象
Intent data = new Intent();
//Intent添加数据,使用setResult(resultCode,intent)返回
data.putExtra("data",content);
setResult(2,data);
//结束当前Activity并换回上一个Activity
finish();
}
});
}
//匹配requestCode和resultCode,通过getStringExtra获取到返回的字符串
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
//可以做一个判断是谁返回数据
if (requestCode == 1 && resultCode == 2){
String content = data.getStringExtra("data");
tv.setText(content);
}
}
今天下午继续看书,再深入理解一下Intent
明天计划:我也不清楚明确的学习什么,明天再写吧
遇到的问题:Activity的生命周期还是比较好理解,= =仅限于知道它是怎么个运行流程,Intent学的有点晕,跳过去跳过来的,到今天晚上之前我准备继续看Intent至少把简单的页面跳转和简单的带返回值页面跳转理解好。
电脑太卡了。。不小心把日报编辑关掉了。。。又编辑了一次
昨天手机热点没流量了。。不能上网。。所以简单看了下第一行代码
收获:理解了Activity的生命周期,学习了Intent
评论