【问题标题】:Android: Launch new instance of application activity from home screen widgetAndroid:从主屏幕小部件启动应用程序活动的新实例
【发布时间】:2012-11-10 07:16:39
【问题描述】:

我在主屏幕上有一个应用小部件,其中包括一个用于启动基本设置活动的按钮。

当用户按下返回按钮时,如果主应用程序的堆栈中有一些活动,则返回按钮会将您带到应用程序中最近查看的活动,而不是返回主页。我为我的意图尝试了以下标志:

settingsIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

settingsIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_TASK_ON_HOME);

settingsIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

但没有任何运气。我可以使用任何标志或标志组合来执行此操作吗?谢谢。

【问题讨论】:

    标签: android


    【解决方案1】:

    您需要执行以下操作:

    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    

    您当前正在使用 setFlags,当您需要这两个标志才能正常工作时,它会覆盖您之前设置的标志。

    您可以在http://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_CLEAR_TOP阅读有关此内容

    【讨论】:

    • 太棒了,我以为我可以让它工作,但要么我很笨,它从一开始就没有工作,要么是什么导致它完全停止工作。
    • 我已经尝试了 CLEAR_TOP 和 CLEAR_TASK,但都不起作用。如果应用程序的堆栈中有任何活动,finish() 会将您带到那里而不是主页。
    【解决方案2】:

    尝试下一个

    settingsIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); settingsIntent.addFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);

    此标志在新任务中运行活动,退出后不将其添加到历史记录中。 所以您的设置活动不会与主应用程序交叉

    【讨论】:

      猜你喜欢
      • 2011-02-11
      • 1970-01-01
      • 1970-01-01
      • 2012-10-20
      • 2014-09-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-22
      相关资源
      最近更新 更多