密码保护Android应用程序的启动

时间:2010-08-09 07:53:21

标签: android

我正在寻找一种在启动时密码保护我的Android应用程序的方法,即当启动/恢复属于我的apk-package的活动时,将显示密码对话框。

我已经尝试了一些方法(扩展application class等等),但似乎都没有。要么它们不在UI线程上运行,要么在每次启动/恢复时都不显示对话框。

// m

2 个答案:

答案 0 :(得分:13)

所以这就是我坚持的解决方案。在我的Application类中,我存储一个long变量,其中包含上次暂停活动时的系统时间。

import android.app.Application;
public class MyApplication extends Application {
    public long mLastPause;

    @Override
    public void onCreate() {
        super.onCreate();
        mLastPause = 0;
        Log.w("Application","Launch");
    }
}

在每个onPause方法中,我将此值更新为当前时间。

@Override
public void onPause() {
    super.onPause();
    ((MyApplication)this.getApplication()).mLastPause = System.currentTimeMillis();
}

在每个onResume中,我将它与当前时间进行比较。如果已经过了一定的时间(当前为5秒),则会显示我的密码提示。

@Override
public void onResume() {
    super.onResume();
    MyApplication app = ((MyApplication)act.getApplication());
    if (System.currentTimeMillis() - app.mLastPause > 5000) {
        // If more than 5 seconds since last pause, prompt for password
    }
}

答案 1 :(得分:3)

子类应用程序,并在那里设置一个变量,以确定下次是否在您的应用程序中发生某些事情时,您应该提示是否有对话框。

在您的活动,服务等中...使用您收到的上下文,如果var设置为显示对话框,请从您的活动代码(意味着UI线程)中显示您的对话框。你可能会把它放在你的onResume代码中。

在onPause中,将变量设置为下次显示。在onResume中,将其设置为false。