[英]How to finish my activity when I have 2 scenarios
我有一个活动,然后开始另一个活动。 第一项活动必须在创建第二项后完成。 在这种情况下,我希望它只以默认的onDestroy()结束。 但是如果用户在第一次活动没有完成时按下键(硬件一),我希望它在完成之前调用一个函数。 有没有温和的方法来实现这一目标? 我想考虑覆盖后退键的默认操作,但它是唯一且最优雅的解决方案吗?
您可以在第一个活动中声明一个标志,指示它是否已完成。
public class Activity1 extends Activity {
private boolean workDone = false;
. . .
@Override
protected void onDestroy() {
if (!workDone) {
specialFunction();
}
super.onDestroy();
}
}
然后在Activity1
某个地方,当它完成了必要的工作时,只需设置workDone = true
。
覆盖onBackPressed
方法就可以了。
public void onBackPressed()
当活动检测到用户按下后退键时调用。 默认实现只是完成当前活动,但您可以覆盖它以执行您想要的任何操作。
http://developer.android.com/reference/android/app/Activity.html#onBackPressed()
public void onBackPressed() {
// do something.
super.onBackPressed();
}
那么你可以覆盖onBackButtonPressed()然后调用super.onBackButtonPressed,这样你就不会错过超类所做的任何事情,但你可以在调用中添加内容。 同样适用于onDestroy()
在这个例子中,utask是我想要杀死的异步任务。
@Override
protected void onStop() {
utask.cancel(true);
super.onStop();
}
@Override
public void onBackPressed() {
// TODO Auto-generated method stub
utask.cancel(true);
super.onBackPressed();
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
utask.cancel(true);
super.onDestroy();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.