2017-07-28 119 views
0

我有一個服務問題,我希望你能幫助我。 我在我的活動中有一個倒數計時器,我想通過服務保持運行。 但是,當我複製代碼編譯器顯示NullPointerException。 請幫幫我。代碼是這些:如何讓服務運行定時器?

public void setMyTimer(){ 

    countDown.start(86400); 
    countDown.setOnCountdownEndListener(new CountdownView.OnCountdownEndListener() { 
     @Override 
     public void onEnd(CountdownView cv) { 

      if (m == 0) { 
       a = a + 1000000; 
       if (a == 366000000) { 
        a = 0; 
        Snackbar snackbar = Snackbar.make(coordinator, "Game is over", Snackbar.LENGTH_LONG); 
        snackbar.show(); 
        cv.stop(); 
       } else { 
        m = m + a; 
        money.setText(String.valueOf(m)); 
        cv.start(86400000); 
       } 

      } else { 
       Snackbar snack = Snackbar.make(coordinator, "You ddin't spend money", Snackbar.LENGTH_LONG); 
       snack.show(); 
      } 

     } 
    }); 

} 

和我的服務類的代碼是:

public class TimerService extends Service { 

private MainActivity mainActivity = new MainActivity(); 


@Nullable 
@Override 
public IBinder onBind(Intent intent) { 

    return null; 
} 


@Override 
public int onStartCommand(Intent intent, int flags, int startId) { 


    mainActivity.setMyTimer(); 

    return START_STICKY; 
} 

}

如果我的代碼廢墟你,我很抱歉,因爲我是一個初學者呢。

回答

0

您無法通過致電new創建Activity,它們由基於Intents的框架管理。與Service一樣的東西。它們也是獨立的組件,不應該包含對另一個的直接引用。

我建議通過一門關於Android基礎開發和Java的課程,以幫助解決像這樣的問題,並更熟悉框架。

相關問題