在对话框调用之前触发Intent,并且不显示对话框,并且MainActivity不会从前台发送出去

时间:2014-01-17 11:37:11

标签: android android-intent

我有一个奇怪的问题。我试图在显示对话框后启动一个意图,但是当我尝试使用我的代码时,它只是启动了意图而没有显示对话框

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    first_launch = PreferenceManager
            .getDefaultSharedPreferences(this);

    fm = getSupportFragmentManager();   
    context = getApplicationContext();
    welcome = (TextView)findViewById(R.id.welcome);


    if (/*some condition*/) {


   //my dialog which should show and and user should click before intent is started     
        PasswordSetMessageDialog set = new PasswordSetMessageDialog();

        set.show(fm, DROPBOX_SERVICE);
      //  set.show(fm, DROPBOX_SERVICE);
        SharedPreferences.Editor editor = first_launch.edit();
        editor.putBoolean("FirstTime", true);

        editor.commit();


       //This should start only after the dialog is called and click on OK
        Intent lock = new Intent(getApplicationContext(),service.class);
        getApplicationContext().startService(lock);

       //MainActivity screen should be minimized after intent is called
        finish();


    }
    else
    {
        Intent lock = new Intent(getApplicationContext(),AppLockService.class);
        getApplicationContext().startService(lock);
        finish();

    }


}

此外,在触发意图后,我也希望MainActivity 完成。我该怎么做呢?

注意:还尝试从对话框中调用意图 (在 onClick 方法中确定,这解决了我的一半问题,但是如何从那里完成MainActivity页面?

编辑:还有一件事我忘了提及,我正在单独的类中定义对话框。

3 个答案:

答案 0 :(得分:2)

我猜finish()应该有效,因为你在Activity实例中,我不知道为什么它不在你的情况下

试试这个

builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {

        @Override
        public void onClick(DialogInterface dialog, int which) {
            // TODO Auto-generated method stub
            alertDialog.dismiss();
            YourActivity.this.finish();
        }
    });

答案 1 :(得分:0)

尝试按照说明中的描述进行操作。只是做一些改变 -

PasswordSetMessageDialog set = new PasswordSetMessageDialog(YourActivity.this);

然后,在OK的click方法中,在PasswordSetMessageDialog类中发送的活动实例的帮助下完成活动。

答案 2 :(得分:0)

要完成活动,请使用以下代码:

MainActivity.this.finish();

然后您可以在对话框的onClick侦听器中使用它

希望这有帮助