自分でビューを実装します。ビューのonDrawメソッドが繰り返し呼び出されます。これにより、重大なパフォーマンス上の問題が発生します。コードはとても複雑なので、ここに貼り付けることはできません。誰でも私にいくつかの理由を教えてくれる?私は私の指でその眺めに触れていない。ViewのonDrawメソッドをAndroidで繰り返し呼び出す条件はありますか?
答えて
理由の1つは、onDraw
メソッドが(おそらく間接的に)ビューを無効にする何らかのメソッドを呼び出すためです。別の可能性は、あなたのプログラムで完全に無関係な何かが再描画を引き起こしていることです。この実験を試してみてください:あなたの描画コードをコメントアウトして、それが機能していることを示すために、単純な線描画のような単純なものに置き換えてください。繰り返し描画が消えたら、onDraw
コードの中に何かがあります。問題が再現するまで、現在のコードを少しずつ復元してから、それを追跡することができます。
実験を試みるときに問題が解決しない場合は、コード内の別の場所(ワーカースレッドなど)でビューを無効にしてください。
Eclipseの検索機能を使用してinvalidate()メソッドまたはpostInvalidate()を検索する価値があるかもしれません。 – Kerry
ケリーとテッド、本当にあなたの親切な助けに感謝します。そして私は問題が間違った場所で 'invalidate()'によって引き起こされていることを知ります。問題が解決しました! –
私は今日同じ問題を抱えていました。私は私のビューのサブクラスでinvalidate()
をオーバーライドすることで、それを解決:
@Override
void invalidate() {
super.invalidate();
}
は、その後、私はinvalidate()
内のブレークポイントを設定し、それを打つのを待ちました。それが起こったとき、私は呼び出しのスタックトレースと呼び出し側呼び出し側を持っていました。ミステリーは2分で解決しました。
これでうまくいかない場合は、ビューで他の無効化メソッドをオーバーライドしてみてください。
- 1. beginBackgroundTaskWithExpirationHandlerを繰り返し呼び出す
- 2. メソッドの呼び出しを繰り返す
- 3. アンドロイドでAndroidグローバルレイアウトリスナーを繰り返し呼び出す
- 4. C++:オブジェクトを繰り返して同じメソッドを呼び出す
- 5. std :: chronoは繰り返しQueryPerformanceFrequencyを呼び出しますか?
- 6. クラスを繰り返し呼び出し
- 7. AndroidでカスタムビューのonDraw()メソッドを呼び出す
- 8. メソッドを繰り返し呼び出すobservableを作成します
- 9. 条件付きで繰り返すヘッダー
- 10. python pilライブラリ呼び出しと繰り返しデータを返すメソッド
- 11. 列の繰り返し条件
- 12. 条件とメソッド呼び出し効率
- 13. Androidアプリで関数を繰り返し呼び出す方法は?
- 14. Reactネイティブコンポーネントは繰り返し呼び出されます。
- 15. メソッドは呼び出し元メソッドで戻り値を返しますか? c#
- 16. easymockを使って、voidメソッド呼び出しを繰り返しました
- 17. initialize()のハッシュ引数でself.sendを繰り返し呼び出す
- 18. Ruby:別のメソッドの条件文内でメソッドを呼び出す
- 19. PLSQLコードのifブロックからプロシージャを繰り返し呼び出す方法はありますか?
- 20. ボタンを押したときにメソッドを繰り返し呼び出す
- 21. すべての描画コードの後にglOrtho呼び出しを繰り返す必要はありますか?
- 22. 次のメソッド呼び出しのコールバックはありますか?
- 23. ローカル変数または繰り返し呼び出し?
- 24. NSThreadを繰り返し呼び出す方法は?
- 25. メソッド呼び出しの責任は誰にありますか?
- 26. 各関数を繰り返し関数スライスで呼び出す
- 27. Excell whileループでサブ呼び出しを繰り返す
- 28. コンソールでjavascript関数を繰り返し呼び出す方法
- 29. AndroidからPCLメソッドを呼び出す方法はありますか?
- 30. Pythonでメソッドの匿名呼び出しがありますか?
コードを投稿すると、問題を解決する最善の方法です。 :) –
約70,000行のコードを含むプロジェクトが他の人によって書かれました。だから私はコードを貼り付けていない。本当に申し訳ありません。次回は起こりません。 –
私はdownvotesに同意します。質問は完全に合理的です - 基本的に問題の診断方法に関するアイデアを求めます。これは確かに巨大なコードダンプを投稿するよりはるかに優れています([Stack Overflowはそれをすべて読むつもりはありません]を参照)(http://meta.stackexchange.com/a/129787/156967))。 –