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

m__*_*m__ 8 android

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

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

// m

m__*_*m__ 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");
    }
}
Run Code Online (Sandbox Code Playgroud)

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

@Override
public void onPause() {
    super.onPause();
    ((MyApplication)this.getApplication()).mLastPause = System.currentTimeMillis();
}
Run Code Online (Sandbox Code Playgroud)

在每个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
    }
}
Run Code Online (Sandbox Code Playgroud)