更改睡眠功能-java-android

更改睡眠功能-java-android,java,android,android-activity,Java,Android,Android Activity,我在代码的开头设置了一个sleep,然后在代码的后面我想更改时间:delay或prefore,这取决于if术语 例如: @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.splash); Thread background = new Thread() { pu

我在代码的开头设置了一个sleep,然后在代码的后面我想更改时间:delay或prefore,这取决于if术语

例如:

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

我会创建一个int来存储类中某个地方的睡眠时间,然后修改它,不管你想睡多长时间。但是,这不会更新当前睡眠。我能想到的唯一解决办法是中断线程,然后用新的睡眠时间重新启动它。例如:

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

我不确定这是否有效。如果我错了,请更正。

当我调用background.start时;应用程序崩溃了