0
シングルトンをパターンとして使用してデータベースとしてSQLiteを使用するプロジェクトを完了します。アクティビティライフサイクルで選択クエリを1回実行します。
onCreateメソッドがアクティビティライフサイクルでトリガされるたびにselectクエリを実行したくないと思うのですが、設定が変更されたときやアクティビティが再作成されたときに、私が前にロードしたのと同じデータ。
私はコンテンツプロバイダを使用していません。私はローダーまたはCursorLoaderを使用することはできません。その方法はわかりません。
マイMainActivityコードは以下です:このアプローチは私のために新たになるよう
RecyclerView recyclerView;
public Cursor cursor;
InsectRecyclerAdapter insectAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(this);
cursor = DatabaseManager.getInstance(this).queryAllInsects("friendlyName"); //EVERY TIME THIS METHOD IS TRIGGER EXECUTE THE QUERY..AND I DON'T WANT THAT.
insectAdapter = new InsectRecyclerAdapter(this, cursor);
recyclerView = (RecyclerView) findViewById(R.id.recycler_view);
recyclerView.setAdapter(insectAdapter);
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
}
私はいつもプロバイダとのSQLiteを使用しています。
提案がありますか?
ローダを使用するためにContentProviderを使用する必要はありません。 –
まあ... @GabeSechan私はContentLinkに欲しいことをできないので、AsyntTaskLoaderを使用しようとしています。しかし、まだモットワークはあります。 –
'ContentProvider'を使用していなくても、' Loader'を実装することができます。ローダーは構成変更中にデータを保持します。 –