【发布时间】:2016-02-23 06:38:51
【问题描述】:
我有嵌套的嵌套类,我试图在退出应用程序之前为最外层的类显示祝酒词。如果我注释掉 exit 语句,吐司就可以正常工作,所以我知道我正在正确访问上下文。我还尝试将 toast 放入一个线程中,它会休眠 2000 毫秒(exit 语句反之亦然),但这仍然不起作用。
我想做的只是显示一个祝酒词并退出程序。 (如果可能的话,最好同时进行......)
public class A extends Service {
private Context context;
//...
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
context = this;
//...
return START_STICKY;
}
Handler disToast= new Handler(new Callback() {
@Override
public boolean handleMessage(Message msg) {
Toast.makeText(context, "see ya", Toast.LENGTH_SHORT).show();
return true;//also tried false, but that did not work...
}
});
private Runnable r = new Runnable() {
public void run() {
new CountDownTimer(3000, 1000) {
public void onFinish() {
Message msg=disToast.obtainMessage();
msg.obj="my message";
disToast.sendMessage(msg);
handler.removeCallbacks(updateTimerThread);
System.exit(0);
}
}.start();//end of inner most class
};//end of first inner class
}//outermost class
编辑** 为什么所有的反对票?我没有使用任何活动(最外面的类是Service,两个内部是普通的 Java 类)所以一些答案(尽管我非常适合这些答案)不起作用。
【问题讨论】:
-
context = getApplicationConext(); -
不要使用 System.exit
-
@barq 介意告诉我应该使用什么来终止程序吗?
-
@MD 我尝试这样做时收到“无法解析方法”错误...也许是因为最外面的类是服务?我不确定……