AsyncTaskLoader の使い方 (1/8) 〜 Thread と AsyncTask

もう非同期処理では、あたりまえなのだろうが、まとめておかないとすぐに忘れる。

AsyncTaskLoader___Android_Developers

AsyncTaskLoader | Android Developers


目次

1. Thread と AsyncTask
2. AsyncTaskLoader の利点
3. LoaderManager の利用
4. よくある間違いと回避法
5. 基本的な Loader の実装
6. いろいろな Loader の使用例
7. データベースと CursorLoader
8. Loader の弱点を克服する


1. Thread と AsyncTask

まずは、非同期処理ではおなじみのThread。

めんどくさいことがいくつかある。

  • メインスレッドに結果を戻す必要がある。
  • 手動でキャンセルしなければならない。
  • スレッドをプールしたければ独自実装しなければならない。

でそこらに対応した AsyncTask。以下の特徴をもつ。

  • 結果をメインスレッドに送ってくれる。
  • スケジュールは管理されている。
  • キャンセル処理も可能。
  • 進行状況が取得できる。

続きを読む >>


【開発者必見】Android OS バージョン 2系を切り捨てるのはいつなのか?

今となってはうざいのがAndroidOSバージョン2.xの対応。

Dashboards___Android_Developers

割合としてはまだまだ多くのユーザーが利用していますので、2014年を迎えたばかりの今でも無視することはできません。国内2年縛りも影響しているのでしょうか。

以前は、Dashboards | Android Developers に、毎月の断片的な円グラフだけでなく、バージョンごとの比率経過が分かるグラフが掲載されていたのですが今では見えなくなっています。

で、開発時に下位互換を目的としたサポートライブラリが公開されてはいるのですが、それはそれで記述が違ったり、バグがあるとかどうのこうのでなんだか検証とかめんどうだったりします。

stackoverflow などでも混乱具合が目立っているようにも見えたりします。

Highest Voted 'android-support-library' Questions - Stack Overflow

Highest_Voted__android-support-library__Questions_-_Stack_Overflow

もう昔のことは忘れて新しいことをやりましょう、などと思ってもユーザーを放っておくわけにもいきません。

最近は、Google も GooglePlayと連携したコアなライブラリともいえる Google Play Service ライブラリを、2.2(Froyo)を対象から外したりしています。(別に froyo向けライブラリを区別して公開。)

このとき、2.2(Froyo)の割合は、5%未満といわれています。

Set Up Google Play Services SDK | Android Developers

A compatible Android device that runs Android 2.3 or higher and includes Google Play Store.

Android SDKでは、タブレットなどを考慮した4系とそれまでの2系で大きく機能や実装方法が変わってきましたので、残りの2系(2.3)はいつになったらユーザー割合が3%ぐらいとなって、忘れることができるのでしょうか。

OS開発のマイルストンもロードマップも調べずに視覚的にテキトー予想してみました。

続きを読む >>


AndroidStudio、(Share)ActionProvider + Proguard で落ち始める。

デバッグ時端末検証ではそんなことはなかったのですが、リリース版のみで報告がデバッグコンソール上に続々と上がってくるという事態に。

java.lang.NullPointerException
...
at android.app.Activity.onCreatePanelMenu(Activity.java:2490)
at android.support.v4.app.p.onCreatePanelMenu(Unknown Source)
at android.support.v7.a.f.a(Unknown Source)
at android.support.v7.a.l.a(Unknown Source)
at android.support.v7.a.f.onCreatePanelMenu(Unknown Source)
at android.support.v7.a.m.onCreatePanelMenu(Unknown Source)
...

どうやら、難読化処理を行う「Proguard」まわりで不具合があるような。

ProGuard___Android_Developers

ProGuard | Android Developers

続きを読む >>