Android生命周期处理多少钱?

ete*_*att 6 android android-lifecycle

可以理解这个问题有点主观,但我相信有一个具体的答案.

我有一个非常小的活动,只是在ListActivity中向用户显示一些数据.我使用的数据来自应用程序的SQLite数据库,我发现自己这样做了

public class MainActivity extends ListActivity{
     private DatabaseAdapter dbHelper;
     @Override
     public void onCreate(Bundle b){ 
          dbHelper = new DatabaseAdapter(this);
          super.onCreate(b); 
     }

     @Override
     public void onResume(){
            dbHelper.open();
            fill_data();//a small method that uses dbHelper to setListAdapter
            super.onResume();
       }

     @Override
     public void onPause(){
          dbHelper.close();
          super.onPause();
     }

     private void fill_data(){/*makes use of dbHelper */ }
Run Code Online (Sandbox Code Playgroud)

这只是代码很大程度上不必要吗 我想处理生命周期,因此当MainActivity不在最佳状态时,我可以使用最少量的资源,但与此同时,整个活动可以完成onCreate().

Bri*_*ley 5

如果您只是在使用它时打开并关闭dbHelper,那么您可能无法覆盖onPause方法.打开帮助器并不是那么密集(我假设是SQLiteOpenHelper),因此您可能会认为它过早优化.

无论如何,你几乎总是需要覆盖onCreate,经常覆盖onResume,有时候覆盖onPause.重要的是当框架调用各种回调以及您必须在其中执行的操作时.

如果您需要在Activity活动到达前台时执行某些操作,或者如果您想在Activity的Looper中执行某些操作(例如,位置更新),则必须覆盖onResume.如果你需要自己清理,你必须实现onPause.

我通常不实现onDestroy,因为它不能保证被调用.