2016-09-30 16 views
-3

私はAndroidアプリケーションを複雑なタスクを使用せず、UI制御を使用しています。 しかし、アンドロイドスタジオのアンドロイドモニターのログを見ました。 「41フレームを下ろして、まばたきを警告する」と言う。アンドロイドアプリケーションを最適化するにはどうすればよいですか?

メインスレッド(UIスレッド)から別のスレッドにコードを抽出したい... しかし、コードはちょうどui controll(のようなupdatelocationlistenerAlertDialog.Builder dialog.... show()Button button = (Button)findViewById(R.id....) ...

マイつのアクティビティコード行が> 300行です。私はそれが大きすぎると思う...だから私は別々のコードを拡散したいので、これが理由です?(低パフォーマンス) 私はスレッドを使用するかもしれないと思うかもしれない

だから私はrunonuithreadと思ったが、 私は広告を送り、runonuithreadは実行可能ファイルを送信しています。 もちろん、送信された実行可能ファイルはメインスレッド(uiスレッド)によって実行されます。 runonuithreadを使用する理由はありませんか?なぜ人々はこれを使用するのですか?

+1

あなたは 'mainThread'で巨大な操作をしている可能性があります – Nikhil

+0

おそらく、メモリモニタを使用してリークがどこで発生しているかを確認し、そこで最適化を開始できます。 – pamobo0609

+0

@ pamobo0609アンドロイドスタジオはコード実行時間モニタを提供していますか? – fasdgoc

答えて

0

なぜ人々がこれを使用しますか?

我々はこの方法を使用するので、我々は唯一のメインスレッド上のレイアウトを更新することができるので、あなたは、runonuithreadメソッドを呼び出しますが、バックグラウンドタスクを実行している、あなたは、レイアウトを更新したいと仮定することができますとき、それが使用されています。

私は

少しはそれが役に立てば幸い説明するように言わ唯一の使用です。

+0

しかし、uithreadで実行されるrunonuithreadコードで 'run'するのですか? runonuithreadとはどのような違いがあり、コードを直接書くだけですか?onCreate – fasdgoc

+0

@fasdgoc:彼の答えは何度か読んでください。なぜなら、バックグラウンドスレッドの 'TextView.setText(...)'をしたいのは許されないので、 'setText'を使って' Runnable'をuithreadに投稿します) – Ped7g

+0

@ Ped7g異なるパフォーマンスの利点はありませんか? – fasdgoc

関連する問題