gpt4 book ai didi

android - 启动新的 Android Activity 太慢了

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:03:42 24 4
gpt4 key购买 nike

我想打开一个新的 Activity :

Intent intent = new Intent(homeScreen.this, EmployeeService.class);         
Bundle b = new Bundle();
b.putInt(Constants.SERVICE_DETAIL_L1_ID_MSG, ServiceIndex.SRV_L1_EMPLOYMENT);
b.putInt(Constants.SERVICE_DETAIL_FOCUS_POS_MSG, 2);
intent.putExtras(b);
startActivity(intent);

但是要使目标 Activity (EmployeeService) 变得可见需要很长时间。从 Logcat,我看到:

05-14 23:43:31.727: INFO/ActivityManager(59): Displayed activity fr.playsoft.happylille/.employee.EmployeeService: 7050 ms (total 7050 ms)

我不敢相信仅仅打开一个新的 Activity 就需要超过 7 秒的时间。我在 onCreate() 中添加了一个日志,但发现只需要 5 毫秒就可以完成 onCreate。

谁能告诉我如何找到这个问题的根源?

最佳答案

您应该将代码 Html.fromHtml(desc); 移至线程以使其异步。该线程可以在新打开的 ActivityonCreate() 期间安全地启动。

在该线程结束时,您可以从 UI 线程运行 tvDesc.setText():

class ExampleThread extends Thread {
@Override
public void run() {
final Spanned spannedText = Html.fromHtml(desc);

yourNewlyOpenedActivity.runOnUiThread(new Runnable() {
@Override
public void run() {
tvDesc.setText(spannedText);
}
});
}
}

更一般地说,一台设备上的 7 秒可能意味着另一台设备上的 20 秒,所以 beware the ANR !

(进一步编辑以下 Boy 的评论,此答案的前一版本不再准确/有效)

关于android - 启动新的 Android Activity 太慢了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6003344/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com