Why use parcelable when you can perform the same task using static variables?

喜夏-厌秋 提交于 2019-12-22 04:15:30

问题


i am new in android and java ... i am reading from couples of day about android parceling tutorial for transfer data or variables values from one activity to other or one class to other ... but i am not so understood about that. can u tell me that is it necessary to use Parcelable for this purpose because same task can also be perform using static key word for variables as string,int or array type then why parcelable pls explain in detail .. thanks for explanation in advance please provide comparison with example


回答1:


While technically both approaches will work, there are a couple of flaws.

The first is that the static variable is static. If you have two instances of the same activity, they will both reference the same static object. This is probably not what you want.

Secondly, it's considered bad practice to access global variables. It makes it difficult to see what is going on, is difficult to test and you someone (another class) can modify your data. This creates some horrendous bugs.

By passing the data via a Parcelable object it is very clear what you are doing and you avoid both of these problems.

Note that this advice is not specific to Android, rather to Java and programming in general.




回答2:


Static references never get garbage collected so you end up creating something called a memory leak.

You are keeping an object in memory that you don't need and it can't be freed up.

If you instantiate enough objects like this you will get an out of memory (oom) exception which will cause the app to crash.



来源:https://stackoverflow.com/questions/6623697/why-use-parcelable-when-you-can-perform-the-same-task-using-static-variables

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!