java - 启动 Activity 时,应用程序可能在其主线程上做了太多工作

标签 java android android-studio optimization

我正在从上一个 Activity 开始该 Activity ,但在开始之前,它会卡住几秒钟,有时甚至更多!

我尝试禁用一些我怀疑的功能并清理代码甚至优化其中的部分内容,但这些都不起作用!

我不知道我应该在这里分享代码的哪一部分,因为我无法确定这个问题的原因,但如果您需要查看它,我将包含它。

这就是我使用按钮启动其他 Activity 的方式:

public void startCount (View v){

        Intent intent = new Intent(MainActivity.this, CounterActivity.class);
        startActivity(intent);
    }

抱歉,我在此处共享代码时遇到问题 x_x SecondActivity.java:

https://pastebin.com/SmiJ0Qiv

第二个 Activity 布局:

https://pastebin.com/1Ef27edW

这是我的日志文件: https://www.pastiebin.com/5d5e7cf1c8e4d

我怀疑原因是这样的:

GooglePlayServicesUtil: Google Play services out of date.  Requires 12451000 but found 10298470

如果您能指出导致卡住的问题,我们将不胜感激!谢谢。

最佳答案

在许多情况下,您必须考虑java最佳实践以及使用一些设计模式

在这里,我将向您列出一些您应该考虑的基本模式实践

你绝对可以自己查一下,但我会在这里提到一些事情

最佳实践

  • 在连接String时使用StringBilder
  • 避免使用正则表达式
  • 使用原语和堆栈

设计模式

设计模式是用于解决特定问题/任务的经过充分验证的解决方案。

以下是最常见的:

  • 单例模式
  • 原型(prototype)模式
  • 工厂模式

Here是了解更多信息的链接

注意:这不一定能解决您的问题,但可能会提高性能。

关于java - 启动 Activity 时,应用程序可能在其主线程上做了太多工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57608591/

相关文章:

java - 重复发送 HTTP 请求,即使应用程序在 Android 上处于后台时也是如此

java - Spring @Controller 调用 @Async 方法,然后在返回的 Future 上调用 get()...代码味道?

java - 删除字符串中的重复字符

android studio build .9.png 格式错误

android - Android Studio 2.3.1 | Gradle “AppName”项目刷新失败

java - JComboBox 中的空值停止箭头键使用

android - 在 ListView 中最右边对齐复选框

php - 将数组传递给 BasicNameValuePair?

Android 5.0 Lollipop - Nexus 10 重启和未检测到 USB 调试?

android - 从 android 中的另一个 XML 调用 XML 是一种好习惯吗?