3

私はカレンダー アプリを開発しており、カレンダー セルとして textview を使用しています。アプリの起動後に logcat を確認すると、Choreographer からの「76 フレームをスキップしました!アプリケーションはメイン スレッドで作業が多すぎる可能性があります」というメッセージが表示されます。多くのテキストビュー (120) を作成していることはわかっていますが、アプリのパフォーマンスに影響を与えずにカレンダーを作成するにはどうすればよいですか? イベントをサポートするカレンダーを作成する別の方法はありますか?

4

5 に答える 5

1

120 個のテキスト ビューは多くのように思えます。特に、数画面分のデータのように思えます。

データの複数の画面がある場合は、アダプター ビューの使用を検討するのが論理的です。たとえばListView、 やGridView. アダプタ ビューはビュー リサイクルを使用して、一度に使用されるビューの数を約 1 画面分に制限します。

于 2015-01-14T20:46:47.970 に答える
0

カレンダーを作成しているため、事前にセルの数を認識しているため、セルを含むレイアウトを膨らませることを検討し、1 つのコマンドでレイアウト全体を設定してから、TextViews のテキストを入力するだけです。 ?

于 2013-07-04T06:19:03.243 に答える
0

検索を行ったところ、次のリンクが見つかりました: http://developer.android.com/reference/android/view/Choreographer.html。これは、API 16 で導入された新しいクラスです。

Choreographer を使用すると、アプリは vsync に接続し、適切なタイミングでパフォーマンスを向上させることができます。

Android ビュー アニメーションは、同じ目的で内部的に Choreographer を使用します。つまり、アニメーションのタイミングを適切に調整し、パフォーマンスを向上させる可能性があります。

Choreographer はすべての vsync イベントについて通知されるため、Choreographer.post* API によって渡された Runnables の 1 つが 1 フレームの時間内に終了せず、フレームがスキップされるかどうかを知ることができます。

私の理解では、Choreographer はフレーム スキップのみを検出できます。なぜこれが起こるのかを知る方法はありません。

「アプリケーションがメイン スレッドで処理しすぎている可能性があります」というメッセージ。誤解を招く可能性があります。

あなたはこの質問を参照することができます

于 2015-01-22T07:03:06.493 に答える