当用户不与应用程序交互时,如何退出或重新启动android应用程序

当用户不与应用程序交互时,如何退出或重新启动android应用程序,android,Android,我想更新我的应用程序数据库中的一个表,这只有在我重新启动应用程序时才可能。所以,在用户不与应用程序交互或用户将应用程序置于后台的某个时间间隔后,是否可以通过编程方式退出或重新启动android应用程序。仅扩展此基本活动,而不是AppCompatActivity public class BaseAppCompactActivity extends AppCompatActivity { //activity restart this timeout public s

我想更新我的应用程序数据库中的一个表,这只有在我重新启动应用程序时才可能。所以,在用户不与应用程序交互或用户将应用程序置于后台的某个时间间隔后,是否可以通过编程方式退出或重新启动android应用程序。

仅扩展此基本活动,而不是AppCompatActivity

public class BaseAppCompactActivity extends AppCompatActivity {
       //activity restart this timeout
        public static final long DISCONNECT_TIMEOUT = 14400000; // 5 min = 5 * 60 * 1000 ms


        private Handler disconnectHandler = new CustomHandler();

        private Runnable disconnectCallback = new Runnable() {
            @Override
            public void run() {
                // Perform any required operation on disconnect
                finishAffinity();
            }
        };

        public void resetDisconnectTimer(){
            disconnectHandler.removeCallbacks(disconnectCallback);
            disconnectHandler.postDelayed(disconnectCallback, DISCONNECT_TIMEOUT);
        }

        public void stopDisconnectTimer(){
            disconnectHandler.removeCallbacks(disconnectCallback);
        }

        @Override
        public void onUserInteraction(){
            resetDisconnectTimer();
        }

        @Override
        public void onResume() {
            System.out.println("Base Activity Resume called");
            super.onResume();
            resetDisconnectTimer();
        }

        @Override
        public void onStop() {
            System.out.println("Base Activity Stop called");
            super.onStop();
            stopDisconnectTimer();
        }
        static class CustomHandler extends Handler {
            public void handleMessage(Message msg) {
            }
        }

        @Override
        public void onBackPressed() {
            super.onBackPressed();
        }
    }

为什么需要重新启动应用程序来更新数据库?有什么具体原因吗?当你说你想更新数据库时,你是指更新一列,还是指添加一列/更改一列名称/等等。。。?更新表列中的字段不需要重新启动。但是,更改表名等。。。是否需要重新启动等。。。您还需要增加我认为的DB版本。因为在重新启动应用程序时,用户必须经过登录过程,在登录过程中,我检查服务器上的用户状态,无论是激活还是停用,然后我将其保存/更新到我的数据库中。