嗨。如何在后端停用或删除用户帐户时使用户使用的应用程序自动注销?

时间:2019-06-21 01:22:50

标签: android

我正在开发Android。我成功完成了由用户设置的Android应用程序登录和注销。但是,当我在后端(使用样板)停用帐户用户时,该用户使用的android应用程序未注销。我该怎么办。

1 个答案:

答案 0 :(得分:0)

您可以创建一个Service来定期检查用户是否仍然有效。除此之外,您还可以在用户执行访问服务器的操作时检查用户的有效性。

服务或操作检测到用户不再有效时。然后只需将用户带回登录页面即可。

Service

的示例代码
public class SessionService extends Service {

    private AtomicBoolean isStopped = new AtomicBoolean(false);
    private static final long CHECK_EVERY = 1000L; // check every 1 second

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {

        final Handler handler = new Handler(Looper.getMainLooper());

        // session checker thread
        new Thread(new Runnable() {
            @Override
            public void run() {

                while (!isStopped.get()) {
                    try {
                        Thread.sleep(CHECK_EVERY);

                        // ask API if user is still valid
                        boolean isUserValid = APIDao.isUserValid();
                        if (!isUserValid) { // user is no longer valid

                            // kill all Activity then open the LoginActivity
                            handler.post(new Runnable() { // runOnUiThread
                                @Override
                                public void run() {
                                    Intent intent = new Intent(this, LoginActivity.class);
                                    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                                    startActivity(intent);
                                }
                            });
                        }

                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
            }
        }).start();

        return super.onStartCommand(intent, flags, startId);
    }

        @Override
    public void onDestroy() {
        super.onDestroy();

        // stop the thread
        isStopped.set(true);
    }
}

使用Push Notification,我还能想到另一件事。我没有尝试过,但是基本上服务器可以将消息发送到应用程序。通常由Messenger应用程序使用。