我遇到了同样的问题,我找到的唯一解决方案是按住按钮并查看上一个活动 3 秒钟。我是这样做的:假设 MainActivity 中的 button1 将您发送到 SecondActivity,通过在 SecondActivity 中按住 button2,您可以在 MainActivity 上偷看几秒钟。因此,在 MainActivity 中,我们为 button1 分配了一个 setOnClickListener:
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// start SecondActivity for result
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
intent.putExtra("string", string); // variables you want to pass
startActivityForResult(intent, REQUEST_CODE); // REQUEST_CODE = 1 (declared above onCreate)
}
});
在 SecondActivity 中,我们将setOnClickListener
和分配setOnLongClickListener
给 button2:
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent resultIntent = getIntent();
resultIntent.putExtra("peek", "false");
setResult(Activity.RESULT_OK, resultIntent);
finish();
}
});
button2.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
Intent resultIntent = getIntent();
resultIntent.putExtra("peek", "true");
setResult(Activity.RESULT_OK, resultIntent);
finish();
return true;
}
});
我们传递字符串“peek”,以便在 MainActivity 中了解我们是要查看还是完全返回。最后,我们必须在 MainActivity 中实现 onActivityResult:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
try {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE && resultCode == RESULT_OK)
{
String peek = data.getStringExtra("peek");
if(peek.equals("false")) //we dont return to SecondActivity
{
//your code
}
else {
//we stay on MainActivity for 3 seconds and return to SecondActivity
//your code
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
intent.putExtra("string", string); // variables you want to pass
startActivityForResult(intent, REQUEST_CODE);
}
}, 3000); //time in milliseconds
}
}
} catch (Exception ex) {
//nothing
}
}
嗯,就是这样!我希望这是有用的:D