更改睡眠功能- android



我在代码的开头设置了一个sleep(),然后在代码中我想更改时间:延迟或提前,这取决于它的期限。

例如:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.splash);
    Thread background = new Thread() {
        public void run() {
            try {
                sleep(10000);

                Intent i;
               i=new Intent(getBaseContext(),Activity8.class);

                startActivity(i);
                finish();
            } catch (Exception ex) { }
        }
    };
 if (connect.getNetworkInfo(0).getState() == android.net.NetworkInfo.State.CONNECTED || connect.getNetworkInfo(0).getState() == android.net.NetworkInfo.State.CONNECTING || connect.getNetworkInfo(1).getState() == android.net.NetworkInfo.State.CONNECTING ||
      connect.getNetworkInfo(1).getState() == android.net.NetworkInfo.State.CONNECTED) {
     network = true; }

       if (network == true) {
           // I want to set sleep to 2 seconds instead of 10 (current setting is 10). 
       } else { // I don't want to change sleep }

我将创建一个int来存储类中某个位置的睡眠时间,然后根据您想要的睡眠时间对其进行修改。然而,这不会更新当前睡眠。我能想到的唯一解决方法就是中断线程,然后用新的睡眠时间重新开始。例如:

int sleepTime = 10000;
Thread background;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.splash);
background = new Thread() {
    public void run() {
        try {
            sleep(sleepTime);

            Intent i;
           i=new Intent(getBaseContext(),Activity8.class);

            startActivity(i);
            finish();
        } catch (Exception ex) { }
    }
};
 if (connect.getNetworkInfo(0).getState() == android.net.NetworkInfo.State.CONNECTED || connect.getNetworkInfo(0).getState() == android.net.NetworkInfo.State.CONNECTING || connect.getNetworkInfo(1).getState() == android.net.NetworkInfo.State.CONNECTING ||
  connect.getNetworkInfo(1).getState() == android.net.NetworkInfo.State.CONNECTED) {
   network = true;
  }

   if (network == true) {
       sleepTime = 2000;
       background.interrupt();
       background.start();
   } else {
       sleepTime = 10000;
       background.interrupt();
       background.start();
   }

我不确定这是否可行。如果我说错了请指正。

最新更新