package jp.mixi.sample.loader;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.LoaderManager;
import android.support.v4.app.LoaderManager.LoaderCallbacks;
import android.support.v4.content.Loader;
import android.util.Log;
import android.widget.Toast;
public class MainActivity extends FragmentActivity implements LoaderCallbacks<String> {
public static final String TAG = MainActivity.class.getSimpleName();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// ローダの管理をするオブジェクト
LoaderManager manager = getSupportLoaderManager();
Bundle argsForLoader = new Bundle();
// ローダを初期化して非同期処理を開始する
manager.initLoader(0, argsForLoader, MainActivity.this);
}
// id に対応した Loader のインスタンスを作って返す
// args は Loader に渡したい引数を Bundle に詰めたもの
@Override
public Loader<String> onCreateLoader(int id, Bundle args) {
Log.v(TAG, "onCreateLoader");
switch (id) {
case 0:
return new MyAsyncTaskLoader(this);
default:
return null;
}
}
// 結果を受け取るコールバック
// メインスレッドで動作する
@Override
public void onLoadFinished(Loader<String> loader, String result) {
Log.v(TAG, "onLoadFinished");
Toast.makeText(this, result, Toast.LENGTH_LONG).show();
}
// ローダがリセットされる時のコールバック
@Override
public void onLoaderReset(Loader<String> loader) {
Log.v(TAG, "onLoaderReset");
}
}