上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

【Android】UIスレッドで処理を実行させる(runOnUiThread)

UIスレッドから別スレッドに切り離して処理をしてその結果をViewで表示したいことってよくあります。
何も考えずに、別スレッドからUI触って強制終了発生って意外とやりがち。

以下でrun()内に処理を実装すれば簡単にUIスレッドに処理が持っていける。


runOnUiThread(new Runnable() {
@Override
public void run() {
// UI操作
}
});


自前でHandler#post()を実装するのもいいですが、runOnUiThreadを使用したほうが簡単ですね。
runOnUiThreadは内部で自身のスレッドがUIスレッドかどうかも判定してくれているようです。

UIスレッドでrunOnUiThreadを実行した場合は、そのまますぐにrun()が実行され、
UIスレッド以外から実行した場合はUIスレッドのイベントキューに追加され、処理がUIスレッドにわたってから
実行されるということですな。





【Android】マニフェストファイルの統合

OSSのライブラリなどを組み込んだ場合に、OSSで使用しているマニフェストファイルを取り込んで使用したい場合がある。
メインプロジェクトのほうのマニフェストに自分で記載すればいいのですが、記載漏れを考えるとOSS側のものを使用したほうがいいかもしれないですね。

そこで、自動マージという便利な方法があったのでメモ。

project.properties ファイルに以下の1行を追加すれば、自動的にマージされたマニフェストファイルがbinフォルダに生成される。


manifestmerger.enabled=true


注意:
マージ先のアプリのAPIレベルが、マージ元のAPIレベルより低いと上記設定は有効にはならないようです。

プロフィール

hiiro

Author:hiiro

最新記事
カテゴリ
月別アーカイブ
最新コメント
最新トラックバック
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
Counter
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。