2012-06-02 3 views
0

Когда я называю свою FUNC для удаления строки из моей БД:Ошибки при удалении SQLITE строки

public void deleteRow(int rowId) { 
    getWritableDatabase().delete(DatabaseHelper.orderTable, "id="+rowId,null); 

я получаю много сообщений об ошибках в LogCat:

06-02 16:32:14.356: E/WindowManager(2770): Activity com.Sagi.MyOrders.FindOrder has leaked window [email protected] that was originally added here 
06-02 16:32:14.356: E/WindowManager(2770): android.view.WindowLeaked: Activity com.Sagi.MyOrders.FindOrder has leaked window [email protected] that was originally added here 
06-02 16:32:14.356: E/WindowManager(2770): at android.view.ViewRoot.<init>(ViewRoot.java:247) 
06-02 16:32:14.356: E/WindowManager(2770): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:148) 
06-02 16:32:14.356: E/WindowManager(2770): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91) 
06-02 16:32:14.356: E/WindowManager(2770): at android.view.Window$LocalWindowManager.addView(Window.java:424) 
06-02 16:32:14.356: E/WindowManager(2770): at android.app.Dialog.show(Dialog.java:241) 
06-02 16:32:14.356: E/WindowManager(2770): at com.Sagi.MyOrders.FindOrder.alert_editlist(FindOrder.java:56) 
06-02 16:32:14.356: E/WindowManager(2770): at com.Sagi.MyOrders.FindOrder.onItemLongClick(FindOrder.java:138) 
06-02 16:32:14.356: E/WindowManager(2770): at android.widget.AbsListView.performLongPress(AbsListView.java:1753) 
06-02 16:32:14.356: E/WindowManager(2770): at android.widget.AbsListView.access$600(AbsListView.java:72) 
06-02 16:32:14.356: E/WindowManager(2770): at android.widget.AbsListView$CheckForLongPress.run(AbsListView.java:1711) 
06-02 16:32:14.356: E/WindowManager(2770): at android.os.Handler.handleCallback(Handler.java:587) 
06-02 16:32:14.356: E/WindowManager(2770): at android.os.Handler.dispatchMessage(Handler.java:92) 
06-02 16:32:14.356: E/WindowManager(2770): at android.os.Looper.loop(Looper.java:123) 
06-02 16:32:14.356: E/WindowManager(2770): at android.app.ActivityThread.main(ActivityThread.java:4627) 
06-02 16:32:14.356: E/WindowManager(2770): at java.lang.reflect.Method.invokeNative(Native Method) 
06-02 16:32:14.356: E/WindowManager(2770): at java.lang.reflect.Method.invoke(Method.java:521) 
06-02 16:32:14.356: E/WindowManager(2770): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
06-02 16:32:14.356: E/WindowManager(2770): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
06-02 16:32:14.356: E/WindowManager(2770): at dalvik.system.NativeStart.main(Native Method) 

Я искал курсор остается открытым или DB, но я ничего не могу найти. сразу после завершения функции, есть:

finish(); 

Вот мой alertDialog создатель:

private void alert_editlist(final int id) { 
     // TODO Auto-generated method stub 
     final CharSequence[] items = {"Edit", "Delete"}; 

     AlertDialog.Builder builder = new AlertDialog.Builder(this); 
     builder.setTitle("What do you want to do?"); 
     builder.setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface dialog, int item) { 
       if (items[item]=="Edit") { 
       } 
       else if(items[item]=="Delete"){ 
        finish(); 
       } 
       finish(); 
      } 
     }); 
     AlertDialog alert = builder.create(); 
     alert.show(); 
    } 

Спасибо Вам !!!

+0

С обработкой диалогового окна что-то не так, а не команда SQLite. Утечка окна происходит, когда, скажем, вы открываете диалоговое окно и поворачиваете свое устройство. Передача диалогов через активный отдых может быть сложной. Что вы делаете с диалогами здесь? в 'com.Sagi.MyOrders.FindOrder.alert_editlist (FindOrder.java:56)' – Phix

+0

Редактировать: добавлен мой создатель диалога. – SagiLow

+0

http://stackoverflow.com/questions/2850573/activity-has-leaked-window-that-was-originally-added –

ответ

0

Вы закрываете диалог с dismiss();

Изменение finish(); к dismiss() (вставить вызов метода удаления перед ним), и вы должны получить лучшие результаты.

Смежные вопросы