标签: lifecycle

Xamarin Forms - 应用程序关闭时单击通知后如何打开特定页面?

我实际上正在开发一个需要推送通知的 Xamarin Forms 应用程序。我使用 Plugin.PushNotification 插件。

当应用程序在前台运行或正在睡眠(OnSleep)时,当我单击收到的通知时,打开特定页面没有问题。但我想知道当应用程序关闭时我该如何做到这一点。谢谢!

lifecycle push-notification xamarin xamarin.forms

5
推荐指数
1
解决办法
4836
查看次数

为什么我的“AppLifecycleState”“恢复”两次?

我正在使用call_number插件从我的应用程序拨打电话。我正在跟踪AppLifecycleState采取行动。这是状态变化的顺序 -

AppLifecycleState.inactive
AppLifecycleState.resumed
AppLifecycleState.inactive
AppLifecycleState.paused
AppLifecycleState.inactive
AppLifecycleState.resumed
Run Code Online (Sandbox Code Playgroud)

最后4-我理解流程,但我无法理解为什么状态会resumed第一次改变。根据文档 - “应用程序是可见的并响应用户输入。” 当它处于恢复状态但当我按下按钮时,直接拨打电话。我想知道它是否是由插件在后台完成的,但我什至没有看到我的应用程序出现。

lifecycle state dart flutter

5
推荐指数
0
解决办法
655
查看次数

Angular - 生命周期:要完全加载的子组件

是否可以通知父组件加载子组件,尤其是在涉及ng-container和时ng-template
如在Yes! I see that you've grown strong, my child!

假设我们有一个这样的组件:

@Component({
  selector: 'my-app',
  template: `
  <ng-container *ngIf="!showElse; else elseBlock">
    <h1>Hi!</h1>
  </ng-container>
  <ng-template #elseBlock>
    <hello name="{{ name }}"></hello>
  </ng-template>
  <button (click)="showElse = !showElse">Show else</button>
  `,
  styles: ['']
})
export class AppComponent  {
  name = 'Angular';
  showElse = false;
  @ViewChild('hello') hello: HelloComponent;
}
Run Code Online (Sandbox Code Playgroud)

有没有办法AppComponent知道是否HelloComponent已满载或者我是否需要内部自定义解决方案HelloComponent

我目前正面临着一个不太理想的解决方案(一个setTimeout()我不喜欢的基于的东西)。
这是我正在考虑的:
- 添加一个EventEmitter到我的HelloComponent;
- 使用HelloComponent的生命周期在以下期间发出事件:ngAfterContentChecked
- …

lifecycle angular

5
推荐指数
1
解决办法
5123
查看次数

ComponentWillUnmount 没有被调用 React-Navigation

我知道这个问题已经存在于 Stack Overflow 上,但大多数问题和答案都很旧了。我正在开发一个应用程序,该应用程序显然使用react-native对componentDidMount内的数据库执行提取调用。

\n

我在componentDidMount中运行了一个调用查询的间隔,并且运行良好。现在我需要调用内部componentWillUnmount来停止查询并登录我的应用程序。clearInterval(this.interval)

\n
    \n
  1. 当我按下保存按钮并使用导航时应该调用它props.navigation.navigate("new Screen", {params})
    \n我阅读了一个我应该使用的解决方案props.navgiation.replace("Screen")- 但它对我不起作用

    \n
  2. \n
  3. 第二个重要部分是,当我按下另一个选项卡(使用底部选项卡导航器)时,也需要调用componentWillUnmount

    \n
  4. \n
\n

据我所知,例如堆栈导航器中的屏幕永远不会真正卸载。那么是否有一种不同的方式来调用componentWillUnmount ,例如当用户离开屏幕(或在屏幕上失去焦点)或用户离开特定的路由名称或其他内容时。

\n

我的componentWillUnmount - 非常简单:

\n
  componentWillUnmount(){\n    clearInterval(this.interval)\n    console.log("Component did Unmount")\n  }\n
Run Code Online (Sandbox Code Playgroud)\n

仅当我转到注销屏幕并注销以再次进入登录屏幕时才会调用它。

\n

(编辑)我的导航器:

\n
const EintragenStack = createStackNavigator(\n  {\n    Eintragen: {\n      screen: StundenEintragen2,\n      navigationOptions: {\n        headerTitle: "Stundenverwaltung",\n        headerTitleStyle:{\n          color: "white",\n          alignSelf: "center"\n        },\n        headerStyle:{\n          backgroundColor: "#a51717"\n        },  \n      }\n …
Run Code Online (Sandbox Code Playgroud)

javascript lifecycle reactjs react-native react-navigation

5
推荐指数
1
解决办法
3451
查看次数

applicationDidBecomeActive 未调用,而其他委托正常调用

就像标题一样,我在某些用户设备上遇到了一个非常奇怪的错误。我已经搜索过,但找不到任何与我完全相同的问题。

以下是有关此错误的更多详细信息:

  • applicationDidBecomeActive 未被调用,但其他委托(didFinishLaunchingWithOptions、applicationWillEnterForeground、applicationDidEnterBackground,...)被正常调用。
  • 重启设备后错误消失。
  • 并不总是发生,一切正常,然后突然出现这个错误并破坏我的应用程序流程。
  • 当我的应用程序出现此错误时,其他应用程序如果使用 applicationDidBecomeActive 执行某些重要操作(如我所看到的 Facebook Messenger,它无法重置未读消息和徽章编号),也会面临相同的错误。

我相信这是一个iOS系统错误,有人可以确认吗?如果没有,我该如何解决?谢谢!

lifecycle ios appdelegate

5
推荐指数
1
解决办法
2440
查看次数

每个 vue.js 生命周期挂钩的用例是什么?

所以我对 vue 的生命周期钩子有所了解,但对于其中一些,我想不出任何现实世界的用例或应该在其中完成的示例,我认为通过找出它们的用例可能会帮助我更好地理解它们。

以下是我对它们的了解和不了解:

创作挂钩

  1. beforeCreate():事件和生命周期已初始化,但数据尚未反应——用例?
  2. create():您可以访问反应性的数据和事件,但模板和虚拟 DOM 尚未安装或渲染 --- 用例:API 调用

安装挂钩

  1. beforeMount():在初始渲染之前运行——用例?
  2. Mounted():你可以访问反应式组件、模板和渲染的 DOM --- 用例:修改 DOM

更新挂钩

  1. beforeUpdate():在数据更改之后和 DOM 重新渲染之前运行 ---用例 ??
  2. update():在数据更改并且 DOM 重新渲染后运行 ---用例 ??

破坏钩

  1. beforeDestroy():在拆卸之前运行——用例:清理以避免内存泄漏
  2. destroy():在拆卸后运行 ---用例 ??

预先感谢任何帮助我更好地理解这些概念的人;)

javascript lifecycle vue.js

5
推荐指数
1
解决办法
1743
查看次数

Flutter 中的所有 widget 都具有“bool this.mounted”属性吗?

祝你平安

我正在研究 Flutter 的小部件生命周期,并停在布尔变量的点上this.mounted,它确实直接存在于State类中,它只能与 a 作为子类连接StatefulWidget,而永远不会/不会与 a 连接StatelessWidget

问题是 ...

是否所有小部件实际上都包含bool this.mounted变量,正如某些人在[此接受的答案本文]中所说的那样?

我在Flutter中搜索,发现这个挂载变量只在类中,然后我进一步查找,找到了类内部State调用的函数。mount()Element

StatelessWidget与类相连StatelessElement,类从ComponentElement直接继承自该类的Element类扩展而来。

我现在真的很困惑,也许我误解了这一点,我需要对此的解释!谢谢。

lifecycle application-lifecycle flutter statefulwidget statelesswidget

5
推荐指数
2
解决办法
4401
查看次数

确保 Flutter 中应用终止期间操作完成

假设我们有一个 Flutter 应用程序,我们希望使用共享首选项来保存一些持久数据。

(我们不想每次用户更改数据时都持久保存数据,因为 UI 直接依赖于数据,为了保存数据,我们需要使用等待异步,这会滞后于 UI),因此我们使用 WidgetsBindingObserver检测应用程序何时进入后台,以便使用该事件作为保存数据的有效捕获所有机会。

因此,我们应用程序的根页面中有一些类似这样的代码:

@override
void didChangeAppLifecycleState(AppLifecycleState state) {
    super.didChangeAppLifecycleState(state);
    if (state == AppLifecycleState.paused) {
      // went to Background
      myPersistentData.instance.write(); // <-------------- this is an async operation
    }
    if (state == AppLifecycleState.resumed) {
      // came back to Foreground
    }
  }
Run Code Online (Sandbox Code Playgroud)

似乎有效,但我担心生命周期可能会很快超出“暂停”(暂停>停止>完成),以至于这个“尾随”操作没有时间完成......因此数据不会得救了。

这是合理的担忧吗?

concurrency lifecycle persistence dart flutter

5
推荐指数
1
解决办法
757
查看次数

为什么Servlet.service()方法返回void而不是ServletResponse的实例?

为什么Servlet接口中的service()方法不返回ServletResponse的实例,而是处理容器提供的ServletResponse对象?

简单来说,为什么Servlet接口的服务方法如下:

public void service(ServletRequest request, ServletResponse response);
Run Code Online (Sandbox Code Playgroud)

而不喜欢:

public ServletResponse service(ServletRequest request);
Run Code Online (Sandbox Code Playgroud)

java lifecycle containers servlets

4
推荐指数
1
解决办法
2016
查看次数

Python:模块全局变量的生命周期

我有一个初始化成本高的共享资源,因此我希望在整个系统中访问它(它基本上用于某些仪器,因此必须重量轻).所以我创建了一个管理设置和访问权限的模块.它执行资源的惰性初始化并将其存储在模块全局变量中.然后,我在整个系统中使用此模块的功能来操作资源.
- 现在我想知道是否(或多久)我将不得不重新初始化资源?
- 我知道对象是在CPython上(或更好地)零引用计数时收集的垃圾,但是存储在计为引用的模块中,即使此时模块没有被执行?

代码示例:这里我们有模块,其中_connect()很慢.我想在我的系统中使用report_safely()并最终尽可能少地调用_connect().

__metrics = None


def _connect():
    global __metrics

    client = SomeSlowToSetUpClient()
    __metrics = SomeMetrics(client)
    client.connect()


def report_safely():
       if not __metrics:
           _connect()

       __metrics.execute_lightweight_code()
Run Code Online (Sandbox Code Playgroud)

python lifecycle global cpython

4
推荐指数
1
解决办法
2538
查看次数