以下是退出我的应用的代码。
由于我有多个活动,我应该在哪里放exitBy2Click()
所以它可以用于所有活动?
我尝试创建一个名为" Global"和public exitBy2Click()
的新类,但Toast.makeText(this,...
无效。
感谢。
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_BACK) {
exitBy2Click();
}
return false;
}
private static Boolean isExit = false;
private void exitBy2Click() {
Timer tExit = null;
if (!isExit) {
isExit = true;
Toast.makeText(this, "click again to quit", Toast.LENGTH_SHORT).show();
tExit = new Timer();
tExit.schedule(new TimerTask() {
@Override
public void run() {
isExit = false;
}
}, 2000);
} else {
finish();
System.exit(0);
}
}
答案 0 :(得分:3)
检查你的方法,我认为最好的选择是继承..
请注意以下示例,您可以覆盖onBackPressed()
而不是onKeyDown()
public class BaseActivity extends Activity {
private static Boolean isExit = false;
@Override
public void onBackPressed() {
exitBy2Click();
}
public void exitBy2Click() {
Timer tExit = null;
if (!isExit) {
isExit = true;
Toast.makeText(this, "click again to quit", Toast.LENGTH_SHORT).show();
tExit = new Timer();
tExit.schedule(new TimerTask() {
@Override
public void run() {
isExit = false;
}
}, 2000);
} else {
finish();
System.exit(0);
}
}
}
然后,您的“真实”活动可以扩展BaseActivity
,这样,onKeyDown
和exitBy2Click
将成为所有类别的通信。
public class MainActivity extends BaseActivity {
@override
public void onCreate(Bundle savedInstance) {
}
}
public class SecundaryActivity extends BaseActivity {
@override
public void onCreate(Bundle savedInstance) {
}
}
//ETC
答案 1 :(得分:2)
放置此代码的最佳位置实际上是“无处”。 建议不要强行终止Android应用,调用System.exit绝对不是你应该在Android应用中做的事情。