- 浏览: 46042 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (47)
- Android (13)
- ADB (2)
- Layout (2)
- Eclipse (2)
- Application (2)
- Activity (1)
- Android3.1 (1)
- Socket (1)
- 网络连接 (1)
- vs2008 (1)
- dll (1)
- debug (1)
- express (1)
- 状态栏 (1)
- 标题栏 (1)
- 隐藏 (1)
- NDK (1)
- JNI (1)
- 头文件 (1)
- java (6)
- thread (2)
- start (1)
- run (1)
- Semaphore (1)
- weight (1)
- Button (1)
- State (1)
- Background (1)
- Log (1)
- Log4j (1)
- edittext (1)
- hint (1)
- String (1)
- == (1)
- equals (1)
- 并发 (0)
- 线程池 (1)
- 异步结果 (0)
- tomcat (2)
- maven (3)
- mysql (2)
- 中文,乱码 (1)
- Git (1)
- C语言 (1)
- C代码 (1)
- 单元测试 (1)
- CUnit (1)
- Ruby (1)
- Qt exe (1)
- IDEA (2)
- 代理 (1)
- mockito (1)
- local repository (1)
- 远程连接 (1)
- 支付宝sdk (1)
- Fragment (1)
- WebSocket (1)
- Tomcat7.0 (1)
- JavaScript (1)
- 循环链表 (1)
- CXF (1)
- WebService (1)
- java web (1)
- Spring (3)
- @Autowired (1)
- 异步任务 (1)
- 定时器定时任务 (1)
- 自动化装配 (1)
- Mybaties (0)
- update (0)
- 单一字段 (0)
- 多字段 (0)
- windows (1)
- git,WinRAR (1)
- Mybatis (0)
- mmGrid (0)
- Maven依赖排除 (0)
- 公共组件 (0)
最新评论
-
jstl1point0:
还有91手机助手,也蛮烦人了,不知道目前什么工具最好用
使用QQ2013时连接Android物理设备Eclipse发现不了 -
yaoneng:
这个不用UI主线程来访问,我用了一个异步线程来做网络访问,就不 ...
在Activity中启动一个网络连接遇到android.os.NetworkOnMainThreadException
话说以前做的一个纯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的Fragment演示程序
2017-07-12 19:47 537这是一个Android的Fragment演示程序 ... -
android 逆向分析
2017-07-08 00:03 578本文转自http://blog.csdn.net/tence ... -
Android中为edittext预设文字(使用hint)
2014-03-22 16:41 1698傻问题如下: 搜索框内有默认文字,在输入时消失,鼠标移出 ... -
Android设置Button各种状态下背景改变
2014-02-20 00:48 1472写一段代码如下,保存为文件button_backgro ... -
Android中元素按比例布局
2014-02-20 00:17 870为了创建比例大小的子View,可以将LinearLayou ... -
在Eclipse中设置进行JNI的头文件编译方法
2013-09-12 19:30 1686这两天在搞NDK开发,JNI的头文件进行编译的时候,要跑到 ... -
android4.3应用程序隐藏状态栏和标题栏
2013-09-09 18:38 840最近拿了一台Nexus7(2013),android4.3 ... -
使用QQ2013时连接Android物理设备Eclipse发现不了
2013-09-08 23:43 1410最近,被邪恶的TX强制升级到了QQ2013,推荐新版本倒也 ... -
android4高级编程(第三版)读书笔记
2016-11-03 20:36 532Android4高级编程(第三 ... -
在Activity中启动一个网络连接遇到android.os.NetworkOnMainThreadException
2011-12-19 18:18 3204真是问题不断,在Android3.1平台上开发时,通 ... -
Eclipse下Android模拟器截图
2011-11-22 17:05 15461、请确认是否在Eclispe环境下,如果不是,则下述方法无效 ... -
Android应用Layout分析器
2011-11-22 16:59 10271,打开Android模拟器,随便打开一个想看Layout的应 ... -
给Android模拟器安装QQ.apk
2011-11-22 16:48 13891,随便那里下载个QQ的APK文件。 2,打开模拟器,通过命 ...
相关推荐
要在多个Activity之间共享变量,可以使用`Application`的`SharedPreferences`或创建一个公共的静态类。另一种方法是通过`Intent`传递数据。在示例中,推荐使用`Application Context`来创建全局变量。 7. **调整...
这种方法适用于需要跨多个Activity访问的数据,但需谨慎处理,避免内存泄漏。 5. **文件存储**:将数据写入文件或SharedPreferences,然后在需要时读取。适用于大量数据或非临时性数据的传递。 6. **ContentProvider...
这里主要讨论的是如何在多个Activity间共享一个持久化的状态,比如一个socket连接,这在处理网络通信时尤为常见。传统的Intent传递数据虽然简单,但对于频繁使用的共享状态可能会显得效率较低。本文将介绍一种更有效...
- **使用静态方法或成员变量**:在同一个Activity内的Fragment间,可以直接通过静态方法或共享成员变量进行数据交换,但这种方式不利于代码的维护和扩展。 **4. Fragment的切换** Fragment的切换通常通过...
4. 如果需要在多个Activity间共享数据,考虑使用Application对象或静态变量,但需谨慎处理内存泄漏。 总结,Handler机制为Android应用提供了一种灵活的跨线程、跨组件通信方式。在Activity之间,通过Handler可以...
在"MultiActivity"这个项目中,可能包含了多个Activity以及它们之间的数据传递示例,可能涉及到上述的一些或所有方法。理解并熟练掌握这些技巧对于构建功能丰富的Android应用至关重要。同时,注意在传递数据时要处理...
这篇博客可能会介绍一些不常见的或者高效的方法来实现在多个Activity间更新UI,比如使用事件总线(Event Bus)、LiveData、ViewModel等现代架构组件。 1. **事件总线(Event Bus)**:这是一种设计模式,用于解决...
文件存储是一种持久化数据的方法,适用于需要在多个Activity间长期保存的数据。你可以使用File、SharedPreferences或XML文件来存储数据。ContentProvider则提供了一种统一的方式来访问应用间的数据,适合大量数据的...
当数据量较大或者需要在多个Activity之间共享时,可以考虑使用Parcelable接口或Serializable接口来实现对象的序列化,然后通过Intent传递。 关于Parcelable接口,它提供了比Serializable更高的序列化性能,适用于...
- **并发问题**:如果多个Activity同时访问静态成员,可能会遇到并发控制问题,需要额外的同步措施来避免数据冲突。 - **安全性和隐私**:不建议在非信任的组件之间直接共享敏感数据,因为静态变量可能会被恶意代码...
当需要在多个Activity之间共享数据且数据量较大时,可以使用静态成员变量或者自定义Application类。但这种方式需谨慎使用,因为可能导致内存泄漏。 4. **文件、数据库或SharedPreferences** 对于大量或持久性的...
如果数据需要在多个Activity间持久保存,可以考虑使用静态成员变量或单例模式。这种方式简单直接,但需要注意线程安全和内存泄漏问题。 四、文件存储和ContentProvider 对于大容量或需要跨应用共享的数据,可以...
如果数据量较大或者需要在多个Activity间持久共享,可以使用静态成员变量或单例模式。但这种方法存在风险,如内存泄漏和数据一致性问题,因此应谨慎使用。 四、Parcelable接口 对于复杂对象的传递,如自定义类实例...
当我们需要在多个Activity之间传递数据时,通常会使用Intent对象,而通过Application Context则可以实现全局的数据共享。下面将详细探讨这些知识点。 一、Activity跳转 Activity之间的跳转是Android应用中最常见的...
2. **单实例模式(SingleInstance)**:在整个任务栈中只有一个Activity实例,所有启动它的Intent都会被发送到这个实例。在这种模式下,数据传递依然通过Intent,但需注意多Intent间的数据共享。 3. **单任务模式...
7. **ViewModel**: Android架构组件提供的ViewModel类,可以在配置变更(如屏幕旋转)时保留数据,避免了数据丢失,也可以在多个Fragment或Activity之间共享数据。 了解了这些方法后,开发者可以根据具体需求选择...
2. **Fragment**: 是Activity的一部分,可以在同一个Activity中嵌套多个Fragment,也可以在多个Activity之间复用。Fragment有自己的生命周期,但受其所在Activity的生命周期影响。 **Fragment与Activity通信的主要...
- 启动多个工作线程并观察Activity是否还能正常响应用户操作。 - 模拟网络延迟,测试异步任务完成后的UI更新是否正确。 - 检查在不同生命周期状态下,工作线程的管理是否得当,是否存在内存泄漏。 6. 性能优化:...
8. **事件总线**:对于更复杂的场景,如多个Activity或Fragment间的数据同步,可以考虑使用事件总线库,如EventBus或RxBus,它们允许组件间松耦合的通信。 9. **数据库和SharedPreferences**: 如果数据量大或者需要...