android – 多个TextViews更新很慢

我有一个服务,每0.1秒发送一个意图给我的活动.我用它来更新计时器的自定义实现.这里一切正常问题出现在我要更新14 TextView我在我的活动中的片段中的TableView中.这里的应用程序非常慢

我的活动中从服务中收到意向的方法

private broadcastReceiver broadcastReceiver = new broadcastReceiver() {
    @Override
    public void onReceive(Context context,Intent intent) {
        long milis = intent.getLongExtra("milis",0);
        if( mFragment != null)
        mFragment.Update(milis);
    }
};

Fragment中的代码,我更新了TextViews:

public void actualizarTiempoJuego(long milis){
    // Se recuperan los tiempos acumulados y se aumenta la cantidad pasada como parámetro
    for(int i=0;i<7;++i) {
        long mCurrentMilis1 = mVectorMilis1.get(i);
        long mCurrentMilis2 = mVectorMilis2.get(i);
        TextView1 t1 = mListaTitularLayoutLocal.get(i);
        TextView1 t2 = mListaTitularLayoutVisitante.get(i);
        t1.setText(String.value(milis + mCurrentMilis1));
        t2.setText(String.value(milis + mCurrentMilis2));
    }
}

我做错事了,还是只是想在效率上做一些非常复杂的事情呢?

解决方法

@Sherif对隐藏的Alpha值提出了一个很好的观点,这些值使您的应用程序陷入困境.
根据您的平台,您可能还需要检查
<application android:hardwareAccelerated="true"... />

另外你可以研究一下,这可能有助于表现不会触发所有这些意图.一旦你开始触发意图,你正在得到系统涉及,取决于他们如何解决它可能需要一些额外的时间.

对于这个问题,我喜欢使用Handlers.它们比意图重量更轻.
你可能还想看看AsyncTask.这基本上就像一个线程,但是也提供了在UI线程上运行的钩子,所以你可以执行后台操作和更新UI,而不必发布runnable.

编辑:最后,您可以随时通过layoutopt工具运行您的布局.罗曼·本人亲自告诉我,如果你的绘画太慢,比你需要少一些.只需从分析工具中查看截图(来自不太理想的视图树,但在最大值范围内).您可以看到绘图占用的资源数量.如果您希望您的应用程序做出反应,这样做非常重要.

编辑:不再称为layoutopt,它叫做lint.检查你的〜/ android-sdk / tools /

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...