`
bbwang8088
  • 浏览: 44104 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

在多个Activity之间共享变量

 
阅读更多

      话说以前做的一个纯Java引擎准备移植到Android上面,前期已做过Demo,看起来一切都没有什么问题。不过,现在真正移植问题就来了。

      第一个问题就是,以前的Demo只是一个画面,引擎初期化是放在Activity的onCreate方法里面,这样做当然没有什么问题啦。现在画面增加到10来个,这个引擎如何为各个Activity公用成为了一个问题。

      对Android不熟悉,也只算是边学边做,所以有了下面的想法:

      1、用Service

      2、用Thread

      3、用Application

 

     现在用了第3种方法成功了。

    第1、2中方法我想本质上都是启动一个独立于Activity的线程,但是无法和Activity挂上关系。所以肯定是NullPointException啦。

 

    具体做法:

    很简单,引擎(或者某个普通的类)需要初始化,而且在应用程序不被销毁之前报保证被各个Activity可用。

    1、自定义一个类MyApplication来继承Application,在这个类中的onCreate方法里面初始化引擎。

    2、为了在各个Activity类中可以调用引擎,需要在1的自定义类中写一个getEngine的方法。

 

    class MyApplication extends Application {  
      
      private Engine engine;  
      
      public Engine getEngine(){  
        return engine;  
      }  
      public void onCreate(){
        engine = new Engine();
        engine.init();
     }
    }
 

    3、在Activity中通过获取引擎对象,并调用getEngine

MyApplication app = ((MyApplication)this.getApplicationContext());  
Engine engine = app.getEngine();  

    4、在AndroidMainfest.xml文件中将Application节点的Android:name改成我们自定义的类。

 

以上

 

分享到:
评论

相关推荐

    android不同activity之间共享数据解决方法

    最近做局域网socket连接问题,要在多个activity之间公用一个socket连接,就在网上搜了下资料,感觉还是application方法好用,帖出来分享下! Android中在不同Activity中传递变量,通常使用Intent中Bundle添加变量的...

    新版Android开发教程.rar

    也有分析认为,谷歌并不想做一个简单的手机终端制造商或者软件平台开发商,而意在一统传统互联网和 移 动互联网。----------------------------------- Android 编程基础 4 Android Android Android Android 手机新...

    Android Activity 完全结束并退出程序的实例

    记得当时自己写的第一个比较完整的项目的时候就遇上了这个问题,由于对Activity的生命周期了解不够,又使用了TabActivity使得层次关系比较复杂,在程序中添加的“退出”菜单项经常无法完全退出,之后网上各种搜索,...

    Android插件框架Android-Plugin-Framework.zip

    App安装时,系统会扫描app的Manifest并缓存到一个xml中,activity启动时,系统会现在查找缓存的xml,如果查到了,再通过classLoad去load这个class,并构造一个activity实例。那么我们只需要将classload加载这个class...

    Android应用程序开发教程PDF电子书完整版、Android开发学习教程

    • Surface Surface Surface Surface Manager Manager Manager Manager - 对显示子系统的管理,并且为多个应用程序提 供了2D 和3D 图层的无缝融合。 • LibWebCore LibWebCore LibWebCore LibWebCore - 一个最新的 ...

    精通ANDROID 3(中文版)1/2

    12.3 在包之间共享数据  12.3.1 共享用户ID的性质  12.3.2 共享数据的代码模式  12.4 库项目  12.4.1 库项目的概念  12.4.2 库项目的性质  12.4.3 创建库项目  12.4.4 创建使用库的Android项目  ...

    精通Android 3 (中文版)2/2

    12.3 在包之间共享数据  12.3.1 共享用户ID的性质  12.3.2 共享数据的代码模式  12.4 库项目  12.4.1 库项目的概念  12.4.2 库项目的性质  12.4.3 创建库项目  12.4.4 创建使用库的Android项目  ...

    老罗android视频开发源码和ppt经典

    7.3 百度地图多个覆盖物的描述 7.4 根据范围和检索词发起范围检索 7.5 标注驾车路线搜索 7.6 标注行走路线搜索 7.7 公交换乘路线搜索 7.8 公交路线详情搜索 7.9 在一个地图上显示多条导航路线 7.10 经纬度和地址的...

    深入理解Android:卷I--详细书签版

    8.2 一个Activity的显示 275 8.2.1 Activity的创建 275 8.2.2 Activity的UI绘制 294 8.2.3 关于Activity的总结 296 8.3 初识Surface 297 8.3.1 和Surface有关的流程总结 297 8.3.2 Surface之乾坤大挪移 298 ...

Global site tag (gtag.js) - Google Analytics