警报对话在另一个Intent活动完成之前到来

时间:2013-09-02 11:46:26

标签: android android-intent android-activity android-alertdialog

在下面的代码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;

            }

1 个答案:

答案 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);

您正在开始新活动,然后显示对话框,这显然会在交易中显示。这也不是一个好习惯,因为它会导致泄露的意图。 您可以在响应对话框时开始您的活动,以便在完成当前活动后,您的下一个活动将开始。

如果此对话框用于下一个活动,则在下一个活动中启动它。