当用户对Android中的所有活动使用通用方法不活动时如何注销登录活动

时间:2018-08-24 05:27:12

标签: android user-inactivity

在我的应用程序中,我要在用户不活动3分钟后退出登录活动

我目前正在使用此代码执行此操作,但是我的应用程序中有 20多个活动 因此无需在每项活动中都粘贴这堆代码我想要通用的方法,  请帮助我

这是我的代码

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();

    }

}

2 个答案:

答案 0 :(得分:1)

您可以在此处创建BaseActivity类,以实现您的功能。 然后通过所有活动扩展此活动。

您还可以使用应用程序类来控制应用程序

答案 1 :(得分:1)

定义

之类的类
[Windows Driver Package - Intel Corporation (iaStorA) HDC  (04/10/2017 
14.8.16.1063),Windows Driver Package - ASUS (ATP) Mouse  (06/17/2015 
6.0.0.66),Windows Driver Package - Intel (MEIx64) System  (10/03/2017 
11.7.0.1045),Windows Driver Package - ASUS (HIDSwitch) System  (08/18/2015 
1.0.0.5)]

现在将此public class BaseActivity extends AppCompatActivity { // Write logic of logout same as what you wrote in HomeActivity } 扩展到每个要在登录后显示的活动。喜欢

BaseActivity