Java 错误staledataexception

Java 错误staledataexception,java,android,android-intent,cursor,staledataexception,Java,Android,Android Intent,Cursor,Staledataexception,我正在制作一个小的Android应用程序,它允许用户从你的联系人列表中选择一个电话号码。当用户选择同一联系人时,我的应用程序崩溃 这里是LogCat: E/AndroidRuntime(6745): FATAL EXCEPTION: main E/AndroidRuntime(6745): java.lang.RuntimeException: Unable to resume activity{it.bisemanuDEV.callresponder/it.bisemanuDEV.callre

我正在制作一个小的Android应用程序,它允许用户从你的联系人列表中选择一个电话号码。当用户选择同一联系人时,我的应用程序崩溃

这里是LogCat:

E/AndroidRuntime(6745): FATAL EXCEPTION: main
E/AndroidRuntime(6745): java.lang.RuntimeException: Unable to resume activity{it.bisemanuDEV.callresponder/it.bisemanuDEV.callresponder.CallResponderListNumberActivity}: android.database.StaleDataException: Attempted to access a cursor after it has been closed.
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2608)
这是代码的一部分:

Uri contactData = data.getData();

if (contactData != null) {
  Cursor c = managedQuery(contactData, null, null, null, null);
  if (c.moveToFirst()) {      
    try { 
      m_phones.add( c.getString( c.getColumnIndexOrThrow( ContactsContract.CommonDataKinds.Phone.NUMBER)).trim()); 
      m_contacts.add( c.getString( c.getColumnIndexOrThrow(ContactsContract.Contacts.DISPLAY_NAME)).trim());

      // add new item to list     
      String tmp_phones = m_phones.toString();
      tmp_phones = tmp_phones.substring(1,tmp_phones.length() - 1);       

      // save to sharedpreferences    
      SharedPreferences.Editor editor = settings.edit();      
      editor.putString(BLACKLIST_PREF, tmp_phones);       
      editor.commit();    

      // refresh ui      
      m_adapter.notifyDataSetChanged();       // inform user      
      String toast_text = getString(R.string.phone_added);   
      Toast.makeText( getApplicationContext(), toast_text,Toast.LENGTH_SHORT ).show();

  } catch (Exception e) {     
      Log.e(TAG, e.getMessage());     
  }
}
c.close();

你能帮我吗?谢谢

尝试将游标close调用移动到destroy()方法中,并将其从现在的位置移开