【问题标题】:open single activity from appwidgetprovider without using singleinstance or singletask从 appwidgetprovider 打开单个活动而不使用单实例或单任务
【发布时间】:2012-07-12 12:34:13
【问题描述】:

我正在编写一个应用程序,其中有几个活动,例如活动 A->B->C->D。除此之外,我们还可以从应用小部件启动活动。

应用要求:

  • Activity C 可以从AppWidgetProvider 启动,并且在按下返回或主页时应显示主屏幕。
  • 无论何时启动应用程序,应用程序都应从Activity A 启动(例如,如果用户在Activity D 上按下主页按钮,则重新启动应用程序应从Activity A 启动。)

遵循当前的方法:

singleInstance / singleTask 模式用于清除活动堆栈以满足需求。但是,onActivityResult()android:activityOpenEnterAnimationandroid:activityOpenExitAnimationandroid:activityCloseEnterAnimationandroid:activityCloseExitAnimation, 等在使用这些模式时不起作用。

有没有其他方法可以达到要求?

【问题讨论】:

  • 你熟悉intent吗?如果不是就使用它
  • 我应该使用哪些标志
  • 只是为了澄清:如果用户正在使用应用程序并且处于任何活动(A、B、C 或 D)并按下 HOME 按钮,当他返回到app 它会再次启动 Activity A 吗?您意识到这不是正常行为,它可能会让您的用户感到困惑。

标签: android android-layout android-widget


【解决方案1】:

我认为 Android 开发者网站上的 Activity Lifecycle tutorial 是一个不错的起点。它包括一个complete example,说明生命周期的处理方式

【讨论】:

  • 从“活动 A”启动应用程序不是主要要求。以下用例失败。当用户在活动 B (A-> B) 中时,“活动 A”和“活动 B”将在堆栈中。当用户按下主页按钮并现在从小部件启动“活动 C”时,按回显示“活动 B”和不需要的“活动 A”。
  • 我不确定这一点,但在你开始从 B 到 C (B->C) 的意图之前尝试使用 .finish()。那么你的活动就会消失,所以当你按下后退按钮时它们不会出现
猜你喜欢
  • 1970-01-01
  • 2019-10-14
  • 2011-10-06
  • 1970-01-01
  • 2023-03-07
  • 1970-01-01
  • 2015-10-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多