在下面的代码spinet中,我希望该对话框仅在活动(Intent)完成其工作之后才会出现。我搜索了很多,但无法弄清楚如何做到这一点。 :( 目前,Intent I正在进行工作时会弹出对话框。
有人知道如何让对话框等到Intent我完成它的工作
由于
Intent i = new Intent(MainActivity.this, KeyFrame.class);
i.putExtra("keyFrame", filename1+"#"+duration);
//Log.e("Mobicom: Video Name" + MainActivity.videoDir + video_filename, MainActivity.videoDir + video_filename);
startActivity(i);
MainActivity.this.showDialog(MainActivity.GENRE_PREFERENCE_OPTION);
这是完整的代码。
@Override
public Dialog onCreateDialog(int id) {
switch (id) {
case VIDEO_OPTION_DIALOG:
Builder optionDialog = new AlertDialog.Builder(this);
optionDialog.setTitle("Options");
optionDialog.setItems(
new String[] { "Option1", "Option2", "Delete", "Cancel"},
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
String video_filename = MainActivity.mSelectedVideoFilename;
String filename1 = MainActivity.videoDir + video_filename;
switch (which) {
case OPTION_PREVIEW_ID:
// preview
startActivity(new Intent().setAction(android.content.Intent.ACTION_VIEW).setDataAndType(Uri.fromFile(new File(MainActivity.videoDir + video_filename)), "video/*"));
break;
case OPTION_PREVIEW_WITH_RECOM_ID:
Intent i = new Intent(MainActivity.this, KeyFrame.class);
i.putExtra("keyFrame", filename1+"#"+duration);
//Log.e("Mobicom: Video Name" + MainActivity.videoDir + video_filename, MainActivity.videoDir + video_filename);
startActivity(i);
MainActivity.this.showDialog(MainActivity.GENRE_PREFERENCE_OPTION);
//finish();
break;
}
答案 0 :(得分:1)
您的代码:
Intent i = new Intent(MainActivity.this, KeyFrame.class);
i.putExtra("keyFrame", filename1+"#"+duration);
//Log.e("Mobicom: Video Name" + MainActivity.videoDir + video_filename, MainActivity.videoDir + video_filename);
startActivity(i);
MainActivity.this.showDialog(MainActivity.GENRE_PREFERENCE_OPTION);
您正在开始新活动,然后显示对话框,这显然会在交易中显示。这也不是一个好习惯,因为它会导致泄露的意图。 您可以在响应对话框时开始您的活动,以便在完成当前活动后,您的下一个活动将开始。
如果此对话框用于下一个活动,则在下一个活动中启动它。