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