当前位置: 首页 > 知识库问答 >
问题:

Android跳过602帧!应用程序可能在其主线程上做了太多工作

夹谷和韵
2023-03-14

我在下面的代码中ping了java Android中的IP列表,但我现在的问题是运行时出现延迟,这个问题显示为“跳过602帧!应用程序可能在其主线程上做了太多工作。”有人能给我推荐一个解决方案吗?因为我是android的初学者


 protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

            Timer timer = new Timer();
            TimerTask t = new TimerTask() {
                @Override
                public void run() {

                    synchronized (this)
                    {
                        try {
                            wait(1000);
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }
                        runOnUiThread(new Runnable() {
                        @Override
                        public void run() {

                            if (ct < MyIps.length - 1) {
                                ct++;

                                Runtime runtime = Runtime.getRuntime();
                                try {

                                    Process ipProcess = runtime.exec("/system/bin/ping -c 1 " + MyIps[ct] );
                                    int exitValue = ipProcess.waitFor();
                                    System.out.println("Value of   " + MyIps[ct] + " = " + exitValue);


                                    TableRow tableRow = findViewById(a[ct]);
                                    if (exitValue == 0)
                                    {
                                        tableRow.setBackgroundResource(R.drawable.border2);


                                    }

                                    else {

                                        tableRow.setBackgroundResource(R.drawable.border1);

                                    }
                                } catch (InterruptedException e) {
                                    e.printStackTrace();
                                } catch (IOException e) {
                                    e.printStackTrace();
                                }


                            } else {

                                ct = -1;

                            }

                        }
                    });

                }


                }

        };
        timer.scheduleAtFixedRate(t, 1000, 1000);

    }


共有1个答案

杜辰龙
2023-03-14

您的计算机配置非常低。android studio是一个吃公羊的怪物。此外,您还打开了一个模拟器。消耗更多ram。通常情况下,模拟器会滞后。如果你使用视频或gif,那么你可以清楚地看到。很像youtube缓冲。尽量避免使用模拟器。使用物理设备进行开发。那么您将不会看到这种类型的警告。高端pc不会出现此类警告。如果你的电脑已经是高端的,那么增加模拟器的ram大小。否则,请使用物理设备。

 类似资料:
  • 这很好,但我在日志中收到“应用程序可能做了太多工作”消息,并跳过了一系列帧。我该如何解决这个问题?

  • 我正在用这个功能为Android应用程序编码: 我成功地运行了它,但在我为Android支持设计导入了一些Nuget软件包之后,现在它抛出了这样一条消息。 我/编舞(1962):跳过了524帧!应用程序可能在其主线程上做了太多工作。 你能告诉我我做错了什么吗?

  • 我正在开发一个应用程序,它应该从网络服务中获取JSON响应,并将每个元素写入列表视图,我读到我应该使用Asyncask来获取HTTP响应,我做到了,我可以从网络服务中检索数据并在TextViews中显示它们。但是当我尝试在列表视图中显示元素时,它不会显示任何内容,并在logcat中给我以下消息: 这是我的主要代码: 我的列表适配器: 最后是搜索结果。java: 那么,我做错了什么?你对此有什么想法

  • 这发生在我将微调值保存到文件时。我已经使用线程来重新使用它的工作。但它仍然不工作...请帮助我...

  • 我查看了StackOverflow的答案,但没找到多少。所以,我这样做是为了练习,就像Hello World使用JSON一样,我从openweather API获得JSON响应。我在EditText中写下城市的名称,然后按下按钮进行搜索,并在日志中显示JSON字符串。 我该怎么做才能不收到那个消息?

  • 在我的viewpager实现中,我正在膨胀视图(而不是片段)。我的主课是拓展活动。当我尝试从我的应用程序或应用程序中滑动屏幕时,我会遇到此错误 和 CustomPagerAdapter: 我的活动: 是实验室布局吗: