Android process与Thread 的问题



public class Activity2 extends Activity
{
protected void onCreate(Bundle paramBundle)
{
super.onCreate(paramBundle);

new Thread()
{
public void run()
{
dosomething();

}
}
.start();

}
在启动新线程时,出现如下错误:
W/ActivityManager( 81): Launch timeout has expired, giving up wake lock!
W/ActivityManager( 81): Activity idle timeout for HistoryRecord


解决办法:为相应的Activity1及Activity2增加android:process属性,强制使两个Activity处于不同的应用程序私有进程之中。

问题出现的具体原因待进一步研究。


/guide/topics/manifest/activity-element.html

<Activity>元素android:process属性定义了运行Activity所在进程的名称 。通常,一个应用程序的所有组件运行在应用程序创建的默认的进程。它具有与应用程序包相同的名称。<application>元素的 android:process属性可以为所有组件设置不同的默认进程名称。但是,每个组件都可以覆盖默认设置,让应用程序跨多个进程 。

如果分配给此属性的名称以一个冒号(':')开头,发 将创建一个新的属于应用程序的私有的进程,在这一进程中运行。

如果进程的名称由小写字母开始,活动将在该名称的全局进程中运行,只要它有这样做的权限。这样做将使在不同的应用程序中的组件共享一个进程,减少资源的使用。



更多相关文章

  1. 跨进程共享 SharedPreferences
  2. android 应用程序使用统计
  3. 手动修改Android数据库数据
  4. [Android设计模式]Android退出应用程序终极方法
  5. Android之数据存储-手机存储中
  6. Android(安卓)kill app Process 结束进程代码
  7. Android配置打包名称
  8. Android(安卓)Studio之内存分析
  9. AndroidManifest.xml文件详解(uses-configuration)

随机推荐

  1. Android打开第三方地图使用方法
  2. Android(安卓)双击返回键退出程序
  3. Android(安卓)控件 —— ListView
  4. Android简单文件浏览器源代码
  5. android 广播传参数
  6. Android(安卓)实现滑动的六种方式
  7. android之获取信息终端
  8. Android(安卓)日期时间选择控件
  9. android如何让webview里的资源访问本地缓
  10. android自动更新升级APP