android - 如何在用户不活动时使用 Android 中所有 Activity 的通用方法注销到 loginActivity

标签 android user-inactivity

在我的应用程序中,我想在用户不活动 3 分钟后退出 loginActivity

我目前正在使用此代码来执行此操作,但在我的应用程序中有超过 20 个 Activity 所以不用粘贴这堆代码,每个 Activity 我想要通用方法来做到这一点, 请帮助我

这是我的代码

public class HomeActivity extends AppCompatActivity {

    private Handler handler;
    private Runnable r;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_home);


        handler = new Handler();
        r = new Runnable() {

            @Override
            public void run() {

                Intent intent = new Intent(getApplicationContext(), LoginActivity.class);
                startActivity(intent);
                finish();

                Toast.makeText(HomeActivity.this, "Logged out after 3 minutes on inactivity.", Toast.LENGTH_SHORT).show();
            }
        };

        startHandler();

    }

    public void stopHandler() {
        handler.removeCallbacks(r);

    }

    public void startHandler() {
        handler.postDelayed(r, 3 * 60 * 1000);

    }

    @Override
    public void onUserInteraction() {
        super.onUserInteraction();
        stopHandler();
        startHandler();
    }

    @Override
    protected void onPause() {

        stopHandler();
        super.onPause();

    }

    @Override
    protected void onResume() {
        super.onResume();
        startHandler();

        Log.d("onResume", "onResume_restartActivity");

    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        stopHandler();

    }

}

最佳答案

定义一个类

public class BaseActivity extends AppCompatActivity {
  // Write logic of logout same as what you wrote in HomeActivity
}

现在将此 BaseActivity 扩展到每个登录后显示的 Activity 。喜欢

public class HomeActivity extends BaseActivity {
  // Remove code related to logout from this class.
}

关于android - 如何在用户不活动时使用 Android 中所有 Activity 的通用方法注销到 loginActivity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51997964/

相关文章:

vba - 如何检测 Excel 工作簿中的用户不活动

java - 如何停止线程?

android - 上传文件到FTP

android - 什么是 'app' Android XML 命名空间?

grails - 如何避免客户端防火墙关闭连接,因为在 Grails 上处理数据时不活动

ruby-on-rails - Authlogic 超时自动注销

用户闲置一段时间后 Javascript 被禁用

android - 如何在 firebase 数据库中将零保存为 Double

android - 未知使用 FFMPEG 存储大小为 'dstFormat' 构建 PJSIP 时出错

asp.net-mvc - 应用程序每15分钟编译一次