可能不正确的引用

时间:2015-03-25 00:29:18

标签: android reference

我一直试图修复这个bug 3-4个小时,我真的不知道还有什么可以尝试...
以下是该计划应如何运作:

当设置闹钟时,它会熄灭并要求JSON解析器类获取一些数字。

JSONParser类正是这样做的,当我将结果放入对象并尝试更新数据库时,什么也没发生。

JSONParser返回带有数字的字符串,表示它实际上做了它应该做的事情,并且数据库也可以在不同的方法中正常工作。

正因为如此,我怀疑我对这个对象的引用不好,这就是这个不起作用的原因,但我看不出任何错误......这是代码:< / p>

警报类(从数据库中提取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);
    }               

谢谢!

1 个答案:

答案 0 :(得分:0)

因此,显然,方法名称commit在java中使用,如果您将方法命名为完全相同,则Eclipse不会显示任何警告或错误。
所以方法名称是我面临的问题......