0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

getSupportLoaderManagerが使えないから

Posted at

AsyncTaskを触っているときに、LoaderManagerがdeprecatedされたということでメモ。
正直わかってないですが、とりあえずアウトプットします。


以下のようにすると、AndroidStudioに怒られてしまいます。

MainActivity.java
private LoaderManager manager;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

manager = getSupportLoaderManager();// ← 非推奨



~~getSupportLoaderManager()~~と打消し線されちゃいます。

だからといって、動かないわけではありません。動きはします。
しかし少し気になるので、公式ドキュメントを読みました。

LoaderManager

2つ方法がありそうです。

1、getInstance()を使う。
2、initLoader()を使う。

1、はそのまんまですね。インスタンスがほしいので、getします。

Gets a LoaderManager associated with the given owner, such as a FragmentActivity or Fragment.

とのことです。

2、はLoaderを始めちゃうってことですね。

If the loader doesn't already exist, one is created and (if the activity/fragment is currently started) starts the loader. Otherwise the last created loader is re-used.

もしなかったら作ってくれるし、既にあるなら再利用しますよと言っています。
LoaderManagerはActivityやFragmentの一つに一つ割り当てられていることからもわかります。


がしかし、そもそも

Your activity must derive from FragmentActivity to use this.

なので、FragmentActivityを継承させれば良い、ということになりますが、
他で使いたくなったらどうするんだろう、という疑問は解消されていません。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?