历史应用程序堆栈 - 仍然有最后的意图

时间:2013-09-16 09:37:22

标签: android dialog message android-dialog

我有时会启用我的应用的服务,有时会向用户发送主要活动提示Dialog消息, 在用户回答“是”之后\“我没有呼叫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);
}

1 个答案:

答案 0 :(得分:0)

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

我的解决方案:

intent发送2 serviceactivity

第一个 - 用你真正需要的东西。

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

maby它是愚蠢的,但它是我找到的唯一解决方案:)