2015-03-25 53 views
1

我一直在試圖解決這個bug 3-4小時,我真的不知道還有什麼嘗試...
這裏是程序應該如何工作的:可能不正確引用

當警報已設置,它會關閉並要求JSON解析器類獲取一些數字。

JSONParser類的確如此,當我將結果放入對象並嘗試更新數據庫時,什麼也沒有發生。

JSONParser返回字符串與數字,這表明它確實做它應該是什麼,也是數據庫在不同的方法中正常工作。

正因爲如此,我懷疑我對該對象的引用不好,這就是爲什麼這不起作用,但我看不到任何錯誤......下面是代碼:

報警類(其中Ticket對象從數據庫中提取):

public void onReceive(Context context, Intent intent) { 
    /*acquire power service manager*/ 
    PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE); 
    PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,"TAG"); 
    wl.acquire(); 


    boolean boot = intent.getBooleanExtra("boot", false); 

    if(boot==true){ 
     findTicketAndSetAlarm(context); 
    } 
    else{ 
     Bundle b = intent.getBundleExtra("Bundle"); 
     UUID id = UUID.fromString(b.getString("Key")); 
     DBHelper db = new DBHelper(context.getApplicationContext()); 
     currentTicket = db.getTicket(id); 

     if(Global.isNetworkAvailable(context)){ 
      JSONParser parser = new JSONParser(context, currentTicket,true,null); 
      parser.execute("http://www.millipiyango.gov.tr/sonuclar/cekilisler/sayisal/20150228.json"); 
     } 
     else{ 
      sendNotification(context,intent); 
     } 
    } 
} 

這裏是JSONParser類onPostExecute方法:

@Override 
    protected void onPostExecute(String result) { 
     if(result == null){ 
      if(mNotification) 
       Alarm.notifyUser(mContext, mTicket); 
      else 
       mActivity.notify(false); 
     } 
     else{ 
     try { 

      int numbers[] = new int[6]; 

      numbers = getJSON(numbers,result); //GETS the numbers from REST service 

      saveResultsToTicket(numbers); 

      String sResult = Global.getStringFromArray(numbers); //STRING WITH WORKING NUMBERS 

      if(mNotification) 
       Alarm.notifyUser(mContext, mTicket,sResult,mContext.getResources().getString(R.string.these_numbers_were_picked_)); 
      else 
       mActivity.notify(true); 

     } catch (JSONException e) { 
      if(mNotification) 
       Alarm.notifyUser(mContext, mTicket); 
      else 
       mActivity.notify(false); 

      e.printStackTrace(); 
     } 
     } 


     super.onPostExecute(result); 
    } 


    private void saveResultsToTicket(int[] numbers) { 

     mTicket.setResultNumbers(numbers); 

     ArrayList<Row> rows = new ArrayList<Row>(); 
     rows = mTicket.getRows(); 
     Iterator<Row> i = rows.iterator(); 
     while(i.hasNext()){ 
      Row r = i.next(); 
      if((r.checkNumbers(numbers)).length >= 3){ 
       mTicket.setWon(Global.WIN); 
       return; 
      } 
     } 
     mTicket.setWon(Global.LOSE); 

     commit(); 

    } 


    private void commit() { 
     DBOperator dbOp = new DBOperator(mContext.getApplicationContext(), Global.UPDATE); 
     dbOp.execute(mTicket); 
    }    

謝謝!

回答

0

因此,顯然,在java中使用方法名稱commit,並且如果某些機會將您的方法命名爲完全相同,則Eclipse不會顯示任何警告或錯誤。
所以方法名稱是我面臨的問題...