【发布时间】:2011-03-10 22:44:59
【问题描述】:
两个问题: 1)我想在我的应用程序中添加几分钟不活动后自动注销的选项。我所说的自动注销是指应用程序将在几分钟不活动后返回到第一个活动(初始状态)。我的第一个活动是登录表单,之后用户对另一个活动有不同的选择。
我不知道如何自动注销。我正在寻找建议...
2) 如果可以制作自动销毁应用程序。假设有人偷了我的手机,我发送短信或其他东西,手机识别并自动卸载应用程序。这可能吗?
【问题讨论】:
两个问题: 1)我想在我的应用程序中添加几分钟不活动后自动注销的选项。我所说的自动注销是指应用程序将在几分钟不活动后返回到第一个活动(初始状态)。我的第一个活动是登录表单,之后用户对另一个活动有不同的选择。
我不知道如何自动注销。我正在寻找建议...
2) 如果可以制作自动销毁应用程序。假设有人偷了我的手机,我发送短信或其他东西,手机识别并自动卸载应用程序。这可能吗?
【问题讨论】:
Timer to schedule some task in the future
我不知道您是否可以删除自己,但这里有一个如何删除应用程序的链接。 Deleting applications
考虑只删除应用中的数据而不是整个应用。
您可能想register a IntentReceiver 并查找特殊短信
【讨论】:
1) 您可以设置一个计时器,当用户与应用交互时,您可以取消它,在交互后您再次启动它。然后,当计时器到期时,您使用 FLAG_ACTIVITY_CLEAR_TOP 标志启动登录活动,并使用 Intent 标志,此标志将完成任务中所有在根登录活动之上的活动。
2) 您可以为 SMS 设置一个意图过滤器,当所需的 SMS 到达时,您可以禁用该应用程序以使其无法启动,请查看this 问题以进行此操作。
【讨论】:
这是一个使用 Timer 的 sn-p:
Timer timeoutTimer;
int INTERVAL = 300000; //5 minute interval
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
timeoutTimer = new Timer();
TimerTask timeoutTask = new TimerTask() {
@Override
public void run() {
finish();
}
}
//anything else you want to do onCreate
}
void setTimer() {
t.schedule(timeoutTask, Calendar.getInstance().getTime(), INTERVAL);
}
void resetTimer() {
timeoutTask.cancel();
setTimer();
}
void someMethodTriggeredByUserAction() {
//do some work?
resetTimer();
}
【讨论】: