我正在上述平板电脑上安装此应用程序,我打算将这款平板电脑提供给我的客户一两天,我想要的是:
在检查操作之后,客户端应该在到期日之后不能使用所述应用程序。为此我调用了压缩函数并将提取的系统日期(Day)与我希望应用程序关闭操作的那一天进行比较。我使用以下代码:
public void expire(){
Calendar c = Calendar.getInstance();
int sDate = c.get(Calendar.YEAR);
int sMonth = c.get(Calendar.MONTH)+1;
int sDay = c.get(Calendar.DAY_OF_MONTH);
int sHour = c.get(Calendar.HOUR_OF_DAY);
int sMin = c.get(Calendar.MINUTE);
Toast.makeText(getApplicationContext(), ""+sDate+sMonth+sDay+"Hour is"+sHour, Toast.LENGTH_LONG).show();
if (sDay >=11){
System.exit(0);
}
}
我叫expire();在按钮上单击以检查,但我得到的是一个空白的黑屏几秒钟,然后应用程序工作正常。我不想要的。
答案 0 :(得分:3)
要退出活动,请致电finish()
。
答案 1 :(得分:2)
拨打finish()
而不是System.exit(0);
并且还要检查月份,因为客户端也会在下个月的前十天使用该应用程序:P:P:P
答案 2 :(得分:1)
在调用expire()之后,使用finish()似乎正在模拟器上工作;来自onCreate而不是on按钮单击。但是,在真实设备上使用System.exit(0)确实有帮助,而finish()则没有。
System.exit()(在纯Java和核心Java中)可用于在程序退出之前运行关闭挂钩。这是在较大程序中处理关闭的一种方便方法,其中程序的所有部分都不能(并且不应该)彼此了解。然后,如果有人想要退出,他可以简单地调用System.exit(),并且关闭挂钩(如果正确设置)负责执行所有必要的关闭仪式,例如关闭文件,释放资源。
而在finish()的情况下,调用finish()的方法将运行完成。在将控制权返回给Android之前,finish()操作甚至不会开始。