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

应用程序可能在其主线程上做了太多工作

杨骏
2023-03-14

我对Android非常陌生,在我的应用程序中,当我点击添加在碎片类上的按钮时,我在活动上添加了碎片,我在我的日志猫上得到警告,如下所示-

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

请帮帮我我该怎么解决这个?

public class BatchDetailsActivity extends  AppCompatActivity  {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.batchdetails_main_layout);

        //Intializing Fragments:-

        Intent i = getIntent();
        String fragment = i.getStringExtra("DetailsFragment_Key");

        intializingFragments(fragment);
    }

    private void intializingFragments(String fragmentType){

        android.support.v4.app.FragmentManager fragmentManager = getSupportFragmentManager();
        android.support.v4.app.FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();

        if (fragmentType.equals("BatchDetailsFragment")) {

            BatchDetails_Fragment fragment = new BatchDetails_Fragment();
            fragmentTransaction.add(R.id.fragment_container, fragment);
            fragmentTransaction.commit();

        }else if(fragmentType.equals("RaisePoDetailsFragment")){

            Rasing_po_Fragment fragment = new Rasing_po_Fragment();
            fragmentTransaction.add(R.id.fragment_container, fragment);
            fragmentTransaction.commit();
        }
    }
}
public class Rasing_po_Fragment extends Fragment implements AdapterView.OnItemSelectedListener {
    View view;

    Button select

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

        view = inflater.inflate(R.layout.fragment_raisepo_layout,container,false);

        select.setOnClickListener(buttonClickEvents());

        return view;
    }

 //Select and Cancel button implementation:-

    private View.OnClickListener buttonClickEvents(){
        return new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                int getId = v.getId();

                if (getId == R.id.selectbuttonid){

                    Intent i = new Intent(getActivity(), PoFinalizaion.class);
                    getActivity().startActivity(i);
                }
            }
        };
    }

共有1个答案

闻人飞翼
2023-03-14

我认为这可以帮助您。我认为使用uiThread将清除此警告。在您的活动中,使用以下代码:

new Thread(new Runnable() {
  @Override
  public void run() {

    runOnUiThread(new Runnable() {
      @Override
      public void run() {
        //your code or your request that you want to run on uiThread
      }
    });
  }
}).start();
 类似资料:
  • 当我在emulator上启动应用程序时,我发现以下消息 我看到有很多类似的问题,但每个问题都有不同的解决方案。Tnx很多! 日志猫 搜索ictionary.java WordActivity.java 字典提供程序。Java语言 公共类DictionaryProvider扩展ContentProvider{String TAG="DictionaryProvider";

  • 我有以下错误 关于它的研究。。。确保使用Runnable尽可能多地在新线程中启动所有内容。但不断地出错。我几乎注释了我所有的代码,但在我开始一个新活动时仍然得到了它。然后,我对第一次活动中的这个mapfragment进行了注释,错误就消失了。因此,错误是由以下代码引起的: 我从Android文档的谷歌地图API中得到了这个。。。有点奇怪,它没有得到优化。如何确保错误消失?我可以延迟mapFragm

  • 我是Android SDK/API环境的新手。这是我第一次试着画一张图/图表。我尝试使用3个不同的免费库在模拟器上运行不同类型的示例代码,但布局屏幕上没有显示任何内容。logcat将重复以下消息: 当我运行与一个许可库的评估副本相关的示例代码时,问题并没有持续存在,并且图表工作了。

  • 您好,我正在开发一个android应用程序,当我尝试从我的应用程序发送电子邮件时,我会遇到这个错误。基于此链接,我在后台发送邮件而不使用意图 我的程序: 当我直接指定收件人的电子邮件地址时,应用程序工作正常。当我将其指定为存储收件人电子邮件地址的字符串数组时,问题就来了。 Logcat显示: 跳过222帧!应用程序可能在其主线程上做了太多工作。 谁能告诉我到底是什么问题?

  • 我的代码可以工作,但我在监视器中有一条异常消息:我/编舞:跳过了37帧!应用程序可能在其主线程上做了太多工作。 我知道这个错误消息意味着我在用户界面线程中做了很多繁重的处理。问题是对我来说,除了向列表视图添加假数据,我在用户界面线程上几乎什么都不做。我正在使用Asyncask发出一个应用编程接口请求,这是我正在做的唯一的“繁重”工作,它不在主线程中。 我把我所有的代码放在这里,但我认为大部分都不是

  • 我正在开发一个日历应用程序,并使用textview作为日历单元格,当我启动应用程序后检查logcat时,我发现来自Choreographer的消息“跳过了76帧!应用程序可能在其主线程上做了太多工作”。我知道我正在创建很多文本视图(120),但如何在不影响应用程序性能的情况下构建日历呢?是否有其他方法可以构建支持活动的日历?