我正在构建以下警告对话框:
public class myActivity extends Activity {
super.onCreate(savedInstanceState);
... /*Code to initialize intent*/
AlertDialog.Builder builder = new AlertDialog.Builder(myActivity.this);
builder.setMessage(R.string.launch_preference);
builder.setPositiveButton(R.string.term_preference, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
intent.putExtra("launchType", "launchTerm");
dialog.cancel();
try { startActivity(intent); }
catch (ActivityNotFoundException e) { showUpdateError(); }
finish();
}
});
builder.setNegativeButton(R.string.xterm_preference, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
intent.putExtra("launchType", "launchXTerm");
dialog.cancel();
try { startActivity(intent); }
catch (ActivityNotFoundException e) { showUpdateError(); }
finish();
}
});
builder.create().show();
}
private void showUpdateError() {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("myApp is attempting to launch myOtherApp. It is either missing or out of date Please update it and try again.");
builder.setPositiveButton("Got it!", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
builder.create().show();
}
运行此活动会显示警告对话框,但单击其中任一按钮只会导致应用关闭。
我正在使用新的意图将一系列应用迁移到新的生态系统,以便在它们之间进行通信。我们的想法是,如果myOtherApp尚未更新,第二个警报对话框将在第一个消失之后出现。不幸的是,在调试模式下甚至没有输入onClick方法。
答案 0 :(得分:1)
启动活动后,您需要取消对话框。删除finish(),它会简单地杀死你的活动。
答案 1 :(得分:0)
将finish()放入try {}子句而不是之后;
try { startActivity(intent); finish()}