Ham*_*hid 3 android android-intent
我有两个活动,A和B.我B从A这段代码打来电话:
Intent myIntent = new Intent(this, myAcitivity.class);
myIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(myIntent);
Run Code Online (Sandbox Code Playgroud)
然后B,我放置一个按钮,A通过暂停活动返回活动B.我试图暂停,B以便它转到后台然后去A,但它正在工作.我试过了
一解决方案:
moveTaskToBack(true);
它不是放在B后台,而是放在A后台.
有解决方案吗
要覆盖后退按钮的行为,您可以覆盖按下后退按钮时调用的onBackPressed()方法Activity:
@Override
public void onBackPressed() {
moveTaskToBack(true); // "Hide" your current Activity
}
Run Code Online (Sandbox Code Playgroud)
通过使用moveTaskToBack(true)您的活动发送到后台,但不能保证它将保持"暂停"状态,如果需要内存,Android可以杀死它.我不知道为什么你想要这种行为我认为最好保存Activity状态并在你回来时恢复它,或者简单地用你想要带来的新Activity启动另一个Intent.
要么,
使用此代码 onBackPressed()
boolean mIsPaused = false;
final Thread workerThread = new Thread(new Runnable() {
@Override
public void run() {
doA();
checkPause();
doB();
checkPause();
...
}
}
});
private void checkPause() {
while(isPaused()) {
// you could also use the notify/wait pattern but that is probably needless complexity for this use case.
Thread.sleep(50);
}
}
private synchronized boolean isPaused() {
return mIsPaused;
}
private synchronized void setPaused(boolean isPaused) {
mIsPaused = isPaused;
}
pauseButton.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
// disable any UI elements that need it
setIsPaused(true);
}
});
unPauseButton.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
// re-enable any UI elements that need it
setIsPaused(false);
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20526 次 |
| 最近记录: |