您好我是Android新手,在开发我的应用程序时遇到问题。如何在Android Studio中完成之前停止运行方法
我有一个模式与计时器和关闭按钮。当定时器结束时,模式将关闭,或在关闭按钮结束计时器之前关闭模式。这里的图片:
但是,当我手动关闭模式与按关门按钮,运行计时器仍在运行,并试图关闭模式虽然模式已关闭的方法的问题,这引起了我应用程序崩溃。该错误是
显示java.lang.NullPointerException:尝试在一个空 对象引用调用虚拟方法 'java.lang.String中android.content.Context.getPackageName()'
如何当我按下关闭按钮时,我可以停止该方法吗?
这里我定时器方法来关闭模式当定时器过:
public void startTimer(){
int hoursToGo = 0;
int minutesToGo = 0;
int secondsToGo = 10;
int millisToGo = secondsToGo*1000+minutesToGo*1000*60+hoursToGo*1000*60*60;
new CountDownTimer(millisToGo,1000) {
@Override
public void onTick(long millis) {
int seconds = (int) (millis/1000) % 60 ;
int minutes = (int) ((millis/(1000*60)) % 60);
String text = String.format("%02d:%02d",minutes,seconds);
tv.setText(text);
}
@Override
public void onFinish() {
tv.setText("Request Timeout");
}
}.start();
final AlertDialog d = (AlertDialog) getDialog();
final Timer timer2 = new Timer();
timer2.schedule(new TimerTask() {
public void run() {
d.dismiss();
timer2.cancel(); //this will cancel the timer of the system
Intent i = new Intent(getActivity(), PromoActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
getActivity().startActivityForResult(i,0);
}
}, 10000);
}
我在这里执行方法:
public void onResume(){
super.onResume();
startTimer();
}
+0
是否使用getPackageName()方法中的任何地方你的代码?如果是,请上传该代码。如果没有,请告诉NullPointerException指向哪一行,在崩溃日志的下一行中会提及哪一行。在android.content.ComponentName上的 –
+0
。(ComponentName.java:128) at android.content.Intent。 (Intent.java:4667) 在com.sharpcs2.android.ui.fragment.BarcodeModalFragment $ 3.run(BarcodeModalFragment.java:151) 在java.util.Timer中的$ TimerImpl.run(Timer.java:284) –
+0
BarcodeModalFragment.java:151 is: Intent i = new Intent(getActivity(),PromoActivity.class); –