Android process与Thread 的问题

本文探讨了在Android应用开发中遇到线程启动超时错误的原因,并提供了通过设置Activity的Android:process属性来解决该问题的详细步骤。通过调整进程配置,可以避免应用在不同进程间的资源竞争,从而有效提升应用性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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属性可以为所有组件设置不同的默认进程名称。但是,每个组件都可以覆盖默认设置,让应用程序跨多个进程 。

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

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值