0

我有一项服务有时会打开我的应用程序,有时会Dialog向用户显示主要活动提示消息,在用户回答 YES\NO 后,我会调用finish()以关闭应用程序。

我的问题是当消息显示时,用户回答它并且应用程序被调用finish()并且当你查看recent history你之前玩过的(例如在三星中你长按主页按钮)时,你会看到我的应用程序以及用户启动的其他应用程序。

当你推动它再次打开它时,再次Dialog显示..

从最近的应用程序启动时如何显示活动而不显示 Dialog

public void dialog_1(){
        myDialogViewN = new MyDialogViewNegativeTime(MainActivity.this);

        // Setting vibrator
        vibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
        long[] pattern= {100, 1000};
        vibrator.vibrate(  pattern,0   );

        // Setting 2 Dialog Listeners       
        myDialogViewN.setOnDialogListener(new DialogListener()      {           
            @Override
            public void onNegativeClick()
            {           
                // Stopping Vibraror
                if (vibrator.hasVibrator()){
                    vibrator.cancel();
                    vibrator = null;
                }

                initialize_DialogToUser();                  /// ??
                SendDataToService(3);       //doesn't want reminder
                myDialogViewN.dismissDialog();
                waitForDialogAnswer=false;
                finish();
            }

            @Override
            public void onPositiveClick()
            {
                // Stopping Vibrator
                if (vibrator.hasVibrator()){
                    vibrator.cancel();
                    vibrator = null;
                }

                initialize_DialogToUser();
                SendDataToService(1);       //remind!
                myDialogViewN.dismissDialog();

                squre.setImageResource(R.drawable.triangle_red2);
                waitForDialogAnswer=false;
                finish();
            }       });         
     myDialogViewN.show();
    }
@Override
public void onDestroy()
{
    super.onDestroy();

    // close/stop running application on background
    int id= android.os.Process.myPid();
    android.os.Process.killProcess(id);
}
4

1 回答 1

0

最后我找到了解决方案,问题是当您从历史记录中打开应用程序时 - 从服务到您的活动的最后一个意图停留在那里而不是去,相反通过单击它自己的图标打开应用程序。(不同的打开方式)。

我的解决方案:

发送 2intentserviceactivity,

第一个- 你真正需要的。

第二个- 在您收到服务中的答案后。在第二个你不会放任何数据!改变历史应用程序打开方式中“卡住”的意图只是一个意图。

也许这很愚蠢,但这是我找到的唯一解决方案:)

于 2013-09-17T00:36:11.527 回答