【问题标题】:history applications stack - still with last intent历史应用程序堆栈 - 仍然是最后的意图
【发布时间】:2013-09-20 09:52:45
【问题描述】:

我有一项服务有时会打开我的应用程序,有时会向用户提示主活动提示 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);
}

【问题讨论】:

  • 进行调试并查看:1-如果“myDialogViewN.dismissDialog()”隐藏您的对话框 2-在恢复活动时不再调用 myDialogViewN.show()
  • 我被破解了,用户回答后对话框明显消失(myDialogViewN.dismissDialog()),但问题仍然存在。每次我从历史应用程序打开应用程序时,都会再次显示对话框
  • 如果您从历史记录中打开它,android 似乎会保存此应用程序状态只是。但是如果你一般通过点击图标打开它,这个打开就可以了..
  • 好的,你检查了对话框隐藏,但我告诉你的另一个?我已经多次使用对话框,但从未发生过。
  • 我也破解了myDialogViewN.show(),它真的又来电了。

标签: android dialog message android-dialog


【解决方案1】:

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

我的解决方案:

service发送2个intentactivity

第一个 - 你真正需要的。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-01-21
    • 2011-02-15
    • 2015-01-15
    • 2014-05-25
    • 1970-01-01
    • 1970-01-01
    • 2023-04-07
    • 2018-11-07
    相关资源
    最近更新 更多