首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

在多个Activity其间共享变量

2012-07-15 
在多个Activity之间共享变量????? 话说以前做的一个纯Java引擎准备移植到Android上面,前期已做过Demo,看起

在多个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改成我们自定义的类。

?

以上

?

热点排行