我遇到服务问题,希望你帮助我。 我的活动中有一个倒数计时器,我希望通过服务保持运行。 但是当我复制代码时,编译器会显示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 :(得分:0)
您无法通过调用Activity
来创建new
,它们由基于Intents
的框架管理。与Service
相同。它们也是单独的组件,不应包含对另一个组件的直接引用。
我建议您参阅基本的Android开发和Java课程,以帮助解决此类问题,并更加熟悉该框架。