2011-01-23 126 views
1

在前台运行很长时间的应用程序将获得更多优先级? 我解释我的问题。我在Android上移植了一个与固定基础架构进行通信的软件。我正在做一些测试。每个测试进行5次实验(移动节点向基础设施发送一些查询并评估查询成功次数和平均时间),测试结果是这些实验结果的平均值。 在测试过程中,应用程序始终处于前台。 在实验中,结果提高了e。 G。 (查询的10%15%30%40%55%)。 我将系统实现为活动,但尚未作为服务。 对于测试应用程序获得锁SCREEN_DIM_WAKE_LOCK和WIFI_MODE_FULL。 谢谢应用程序优先级

+0

在上一次实验中,应用程序通常会给出一个OutOfMemoryError。在实验过程中,应用程序的堆栈大小(使用DDMS进行监视)增长。看来,如果进程获得足够的内存,它会变得更好,并且在某些时候它需要太多内存并被os所杀死。 – Luigi 2011-01-23 15:26:19

回答

0

它不会得到更多的优先权,你不应该这样做的UI线程。

有几个问题:

  • ,用户可以关闭该应用程序,您的重要上传过程将被暂停/取消。你可以在开除后恢复逻辑,但对于这种情况它没有任何意义。
  • 当用户关闭应用程序时,它可能会被操作系统关闭。
  • 你可能离开屏幕没有更新,如果发生这种情况,你会得到一个强制关闭。
  • AFAIK在Android的下一个版本中,如果你在UI线程上做网络逻辑,你将得到一个FC。类似姜饼的严格模式。

使用Service并产生最大优先级的线程。我不确定是否将最大优先级设置为Android中的某个线程会产生任何影响,但请尝试一下。

+0

Thanks.I已经把这个阐述放在一个单独的线程中,我试图改变优先级。我暂时只是为了进行性能测试而将应用程序作为活动来使用。 – Luigi 2011-01-23 15:24:20