新手android学习之旅,个人总结

今年4月份学的安卓,其实基础的都还没有掌握,然后7月份开始了一个项目2期的功能完善,百度了不少,哈哈哈

然后越发觉得自己能力不住,因为项目中保存离线数据用的是郭神的litepal,中草了他的android第一行代码2版来从基础的开始学习,然后决定还是要有学习笔记,选择放在博客上,舒服,万一有人觉得我理解独到呢。

这篇博客主要是4点:隐私intent;intent传参;生命周期的自己的理解;savedInstanceState的理解。

话不多说,开始,希望有新人我们可以互相借鉴学习。
1.隐式activity学习:
可以不需要指定上下文对象,直接用
Intent intent1 = new Intent("android.intent.action.secendActivity");

然后在页面中可以直接对intent.addCategory可以用来限制是否能跳转成功。
在manifest中中指定该页面的category:

<category android:name="com.huqi.activity.aintent"/>

那么就需要在代码中加上才能成功跳转:

Intent1.addCategory("com.huqi.activity.aintent");

1.2.通过intent.action来调取系统的一些东西来操作:
使用了

 Intent  intent = new Intent(Intent.ACTION_DIAL);    intent.setData(Uri.parse("tel:8888"));

访问系统拨号功能,返回回到程序。
更多Android中Intent的各种常见作用:个人觉得他总结的挺详细的http://www.jianshu.com/p/5bad45cc110b
2.关于activity的生命周期自己的总结:
首次进入执行的步骤,可以理解成到了onresume(),该页面才被看见。

   oncreat()->onstrat()->onresume();  
   这时候原来页面的activity是进入onpause(),暂停,当dialog.dismiss后又执行onresume()显示。
  当页面发生intent点击跳转事件后:
       Onpause()->onstop();  
  一般来说是不会进入ondestroy()销毁,除非内存不足。
 所以当下个页面finish后,返回本页面:
   Onrestrat()->onstrat()->onresume()显示。
  如果是内存不足系统杀死,finish则加载上一个界面要重新从oncreat()->onresume();即还是会成功返回上一个页面,但上个页面保存的数据会丢失。

当该页面执行finish返回操作:
Onpause()->onstop()->ondestroy()。

3.intent传值跳转:

Intent.put/get传值:

intent.putExtra("name","value//可boolean,int,string,float,数组..")
Intent Resultintent = getIntent();
intent.getStringExtra("name");
intent.getIntExtra("name");
intent.getStringArrayExtra("name");

传Bundle(未测试):

Bundle bundle = new Bundle();
bundle.putString("key","value");
intent.putExtra("name",bundle);
Intent Resultintent = getIntent();
intent.getBundleExtra("name");

传对象,再项目中一般会这个做:

Bundle bundle = new Bundle();
bundle.putSerializable("astation", station);
intent.putExtras(bundle);
station = (Station) intent.getSerializableExtra("astation");

Station类需要implements Serializable;

5对savedInstanceState()简单的了解:

当该页面执行ondestroy()时可以通过实现savedInstanceState(),同样可以保存多种类型的数据。

@Override
public void onSaveInstanceState(Bundle outState, PersistableBundle outPersistentState) {
    super.onSaveInstanceState(outState, outPersistentState);
    String data ="you want sava date";
    outState.putString("name",data);
}

当再次进入这个页面:只需要对oncreat()方法的savaInstanceState判断。这个方法很适合用户再次进入页面查看其上次选项勾选情况。(或许)

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    if (savedInstanceState!=null){
        String data = savedInstanceState.getString("name");
        //do you want do!
    }

肯定有很多不足的地方,很高兴能够接收指正,小白,一步一步的坚持,希望自己能在这儿写很多心得和学习总结,即使美没人看,但万一有人需要呢。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值