loading请求处理中...

安卓开发需要哪些知识 安卓开发应该知道的几点

2021-12-01 21:24:40 阅读 9057次 标签: 安卓rom制作教程 作者: 蓝blue

  下面是安卓应用开发必须知道的事情,像Java代码怎么写,Java是安卓应用开发中最常使用的工具,下面就针对Java代码。

安卓应用开发

  1. 不要持有Context的静态引用

  Java代码

  1. publicclassMainActivityextendsLocationManagingActivityimplementsActionBar.OnNavigationListener,

  2. GooglePlayServicesClient.ConnectionCallbacks,

  3. GooglePlayServicesClient.OnConnectionFailedListener{

  4. //...

  5. privatestaticMeTrackerStoremMeTrackerStore;

  6. //...

  7. @Override

  8. protectedvoidonCreate(BundlesavedInstanceState){

  9. //...

  10. mMeTrackerStore=newMeTrackerStore(this);

  11. }

  12. }

  这对于每个人来说看似是一个不可能犯的错误。但事实却并非如此,我犯了这个错误,我也看到过别人犯这个错误,同时我也采访过那些不能很快指出为什么这是放在第一位的错误的人。不要这样做,它是会变的。

  如果MeTrackerStore通过它的构造函数保持一个指向Activity的引用,这个Activity将不会被垃圾回收(GC),除非静态变量被从新分配到不同的Activity。这是因为mMeTrackerStore是静态变量,而静态变量的内存是不会被回收,直到应用程序退出才回收。如果你正在试图做这样的事情,你的代码很有可能有严重的错误。

  2. 注意那些你无法控制生命周期的对象的隐式引用

  Java代码

  1. publicclassDefineGeofenceFragmentextendsFragment{

  2. publicclassGetLatAndLongAndUpdateMapCameraAsyncTaskextendsAsyncTask{

  3.

  4. @Override

  5. protectedLatLngdoInBackground(String...params){

  6. //...

  7. try{

  8. //Herewemakethehttprequestfortheplacesearchsuggestions

  9. httpResponse=httpClient.execute(httpPost);

  10. HttpEntityentity=httpResponse.getEntity();

  11. in putStream=entity.getContent();

  12. //..

  13. }

  14. }

  15. }

  16. }

  这段代码有很多问题,但我现在只会把重点问题放在“隐式引用”那些问题上。在Java中,(非静态)内部类有个对外部类实例有个隐式引用。

  在这个例子中,任何GetLatAndLongAndUpdateCameraAsyncTask都有一个外部类DefineGeofenceFragment的引用。对于匿名类是同样的,它们也有一个对包含它们的类的实例的一个隐式引用。

  GetLatAndLongAndUpdateCameraAsyncTask对生命周期我们无法控制的Fragment对象有一个隐式引用。Android SDK负责创建和销毁Fragment,如果GetLatAndLongAndUpdateCameraAsyncTask 因为正在运行而不能被垃圾回收,那么DefineGeofenceFragment也将因为具有隐式引用而保留不能被垃圾回收。

  如果你想找安卓应用开发服务,或者想要了解更多安卓应用开发资讯,就上一品威客网。一品威客网入驻上百家专业安卓应用开发公司,汇集全国千万优秀专业人才,提供最全面、最专业的安卓应用开发服务。


APP开发公司推荐

成为一品威客服务商,百万订单等您来有奖注册中

留言( 展开评论

快速发任务

价格是多少?怎样找到合适的人才?

官方顾问免费为您解答

 
APP开发相关任务
DESIGN TASK 更多
安卓软件绕过注册检测

¥3000 已有0人投标

公司内部信息备份安卓app升级

¥1000 已有3人投标

安卓手机输入法app开发

¥7000 已有4人投标

iOS和安卓游戏上号器软件开发

¥21000 已有1人投标

安卓平台下的图型识别

¥5000 已有1人投标

开发安卓+IOS交友app

¥20500 已有19人投标