Android:单击后退按钮时不调用OnCreate()方法

时间:2014-09-05 21:38:03

标签: android android-actionbar

我面临一个非常奇怪的问题。在我的活动中,当我按下Back按钮时,它没有调用父活动的onCreate()方法。

这是我的代码:                   公共类AddNewGrocery扩展了Activity {

 private DBHelper mydb ;
 Button btnSave;
 EditText editName;
 EditText editQty;
 EditText editPrice;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    getActionBar().setDisplayHomeAsUpEnabled(true);
    getActionBar().setTitle("Add List Item Details");



    /** Setting a custom layout for the list activity */
    setContentView(R.layout.add_grocery);
     btnSave = (Button) findViewById(R.id.btnSave);
    editName = (EditText) findViewById(R.id.txtName);
    editQty=(EditText) findViewById(R.id.txtqty);
    editPrice=(EditText) findViewById(R.id.txtPrice);
    mydb = new DBHelper(this);

}}

这是我的mainfeast文件的代码:

   <activity
        android:name="com.example.grocerylist.MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

     <activity
        android:name="com.example.grocerylist.AddNewList"
        android:label="@string/app_name"
       android:parentActivityName="com.example.grocerylist.MainActivity">
     </activity>
     <activity
        android:name="com.example.grocerylist.AddNewGrocery"
        android:label="@string/app_name" 
        android:parentActivityName="com.example.grocerylist.AddNewList">
     </activity>

4 个答案:

答案 0 :(得分:3)

这是因为已经创建了父活动,但在访问另一个活动时它已暂停。如果您想在返回活动时执行某些任务,可以使用&#39; onResume()&#39;方法

请参阅文档:Activity lifecycle

答案 1 :(得分:0)

我相信这是因为之前的活动仍在内存中,因此已经创建了。而是调用onResume()。 Activity lifecycle这解释了在不同情况下每个人所谓的内容。

答案 2 :(得分:0)

按下后退按钮只能保证调用onPause()方法。如果你想在每次恢复应用程序时调用onCreate(),你可以在重写的onPause()方法中放入onStop()。

答案 3 :(得分:0)

尝试在代码中调用onResume方法

public void onResume(){
      super.onResume();
// do stuff
}