なんか音小さいような。
全開にしても小さいマイクやスピーカー。
大きくする方法が。要 root ですが。
まとめると以下手順となるようです。
AsyncTaskLoader | Android Developers
1. Thread と AsyncTask
2. AsyncTaskLoader の利点
3. LoaderManager の利用
4. よくある間違いと回避法
5. 基本的な Loader の実装
6. いろいろな Loader の使用例
7. データベースと CursorLoader
8. Loader の弱点を克服する
1. 進捗状況(progress)の更新ができない。
対応策:
LocalBroadcastManager を使う。
Activity 側。
@Override protected void onStart() { // Receive loading status broadcasts in order to update the progress bar LocalBroadcastManager.getInstance(this) .registerReceiver(loadingStatusReceiver, new IntentFilter(MyLoader.LOADING_ACTION)); super.onStart(); } @Override protected void onStop() { super.onStop(); LocalBroadcastManager.getInstance(this).unregisterReceiver(loadingStatusReceiver); }
Loader 側。
@Override public Result loadInBackground() { // Show progress bar Intent intent = new Intent(LOADING_ACTION).putExtra(LOADING_EXTRA, true); LocalBroadcastManager.getInstance(getContext()).sendBroadcast(intent); try { return doStuff(); } finally { // Hide progress bar intent = new Intent(LOADING_ACTION).putExtra(LOADING_EXTRA, false); LocalBroadcastManager.getInstance(getContext()).sendBroadcast(intent); } }
AsyncTaskLoader | Android Developers
1. Thread と AsyncTask
2. AsyncTaskLoader の利点
3. LoaderManager の利用
4. よくある間違いと回避法
5. 基本的な Loader の実装
6. いろいろな Loader の使用例
7. データベースと CursorLoader
8. Loader の弱点を克服する
CursorLoader は ContentProviders 照会専用のローダです
結果としてデータベースカーソルを返す。
AsyncTaskLoaderを継承したバックグランドスレッドでデータベースクエリーを実行します。
Acitivityのライフサイクルに応じて、Activity.startManagingCursor(Cursor c) やカーソルのライフサイクルの管理を置き換えます。
→ close() は呼ばない。
データベースを監視し、データが変更された新しいカーソルを返します。
→ requery() は呼ばない。
ListFragment内 CursorAdapterでの使い方
@Override public Loader<Cursor> onCreateLoader(int id, Bundle args) { return new BookmarksLoader(getActivity(), args.getDouble("latitude"), args.getDouble("longitude")); } @Override public void onLoadFinished(Loader<Cursor> loader, Cursor data) { adapter.swapCursor(data); // The list should now be shown. if (isResumed()) { setListShown(true); } else { setListShownNoAnimation(true); } } @Override public void onLoaderReset(Loader<Cursor> loader) { adapter.swapCursor(null); }