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

xiaoxiao2021-02-27  107

今年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! }

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

转载请注明原文地址: https://www.6miu.com/read-16650.html

最新回复(0)