更改睡眠功能-java-android
我在代码的开头设置了一个sleep,然后在代码的后面我想更改时间:delay或prefore,这取决于if术语 例如:更改睡眠功能-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
@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时;应用程序崩溃了