Flex 4.5和4.6之间的火花生命周期变化
我最近将一些项目迁移到了闪亮的新Flex 4.6 SDK.我没想到很多麻烦,因为这只是一个较小的发布.但是事实上,我到处都有数百个错误.这些错误主要来自Spark SkinnableComponent s;例如: override protected function getCurrentSkinState():String { return mySkinPart.someProperty ? "normal" : "someOtherState"; } 在4.5下可以正常工作,但在4.6中会给我带来nullpointer错误.原因很简单:在4.6 getCurrentSkinState()中创建skinparts之前是调用的,而在4.5中,我可以确定默认状态处的skinparts会在那里. 进一步的调查使我相信皮肤的初始状态现在为undefined,而不是States阵列中的第一个状态(直到它调用getCurrentSkinState()是). 解决这些问
0 2024-02-28
编程技术问答社区
Angular 5中服务的生命周期是什么?
角5 什么时候创建和破坏了一项服务,其生命周期挂钩是什么(如果有的话),以及其组件之间的数据如何共享? 编辑:要澄清,这是不是关于组件生命周期的问题.这个问题是关于服务的生命周期.如果服务没有生命周期,则如何管理组件和服务之间的数据流? 解决方案 服务可以具有2个范围. 如果在模块中声明服务,则您将共享所有相同的实例,这意味着将在需要创建的第一个组件/指示/服务/管道时构建服务.然后,当模块本身将被销毁时(大多数情况下,卸载页面时)将被破坏. 如果在组件/指示/管道上声明该服务,则每次将在相关组件/指令/管道被销毁时,将创建一个单独的实例/指示/管道. 您可以在行动中看到它 P> 代码测试:2个服务用于显示何时创建/破坏. @NgModule({ providers: [GlobalService] // This means lifeCycle is related to the Module, and only one instanc
0 2024-02-25
编程技术问答社区
Angular $rootScope $on 监听器在 'destroyed'控制器中继续运行
我在index.html中设置了带有NG-View指令的Angular App,其中使用了$ RouteProvider配置配置的视图,并且每个视图都具有自己的控制器.在一个视图控制器中,我有一个$ rootscope.听众观看活动的$.我希望当我更改视图时,这个听众不会再运行,但事实并非如此.即使我切换到不再使用该控制器的视图,手表仍将其触发时保持呼叫代码. 我已经设置了一些测试代码来收听$毁灭事件,我可以看到$ destion destion事件正在触发,但侦听器函数仍然运行.我已经打印出$ scope.在手表功能和$ destroy destrot Event Lieser中,$ ID都可以看到IDS匹配.因此,似乎即使在特定范围发生$销毁事件之后,听众的$仍在继续运行.为什么这样?我的印象是,当导航到另一个视图时,或者在任何情况下,控制器被摧毁,然后清除了听众. plnkr:var animateApp = angular.module('animateApp', [
0 2024-02-24
编程技术问答社区
如何在Angular 7中为CdkVirtualScrollViewport设置初始索引(位置)?
我需要cdk-virtual-scroll-viewport的intalitiation位置,而不是列表的第一个元素/项目. 现在我找到了scrollToIndex和scrollTo方法,但是我只能在ngAfterViewChecked中使用它时才能使它们工作. 有人可以确认ngAfterViewChecked中使用的这些方法是正确的方法吗? 如果不是,请显示替代方法/技术? 在 @ViewChild(CdkVirtualScrollViewport) cdkVirtualScrollViewport: CdkVirtualScrollViewport; numbers: number[] = []; constructor() { for (let index = 0; index
0 2024-02-22
编程技术问答社区
Angular 6-如果导入BrowserAnimationsModule的渲染问题(Openlayers)。
我基本上有一个呈现小地图的应用程序.在此页面上也是一个"切换"按钮,该按钮在父组件中使用 *ngif隐藏了小地图,并以大图显示了地图. 如果我现在在app.module.ts中导入browseranimationmodule. 对不起..有点难以解释,这是代码: app.module.ts ... @NgModule({ declarations: [ AppComponent, MapSmallComponent, MapLargeComponent, MapBaseComponent ], imports: [ BrowserModule, FormsModule, BrowserAnimationsModule, // comment this line, to make the app work ], providers: [], bootstrap: [AppComponent]
2 2024-02-22
编程技术问答社区
在ngOnDestroy函数中调用时,如何等待api调用完成?
我有一个场景,必须在破坏特定组件之前将数据发送到API(数据库).如Angular2生命周期中所述,在将组件破坏并称为ngOnDestroy之前执行一种方法.但是,如文档中指定的那样,这是一个空隙函数,因此它不等待某些结果返回. 我的问题是我如何在ngondestroy函数中执行对API的呼叫并在完成后等待? 如果我只调用更新函数,但是当我从一个组件到另一个组件途径时,当下一个组件加载旧数据时,来自第一个组件的数据尚未更新(如果我点击刷新,那么我将获取新数据).因此,问题是我迫不及待地等待更新功能完全执行,然后允许组件破坏和路由到下一个组件,该组件将加载正确的更新数据: updateData(data: any, callback?: Function) { this.apiService.update(data).then(response => { callback(response); } } ngOnDestroy() {
0 2024-02-21
编程技术问答社区
Angular 2-懒惰加载模块的生命周期钩子
我正在使用懒惰的角模块开发应用程序. 我有一个简单的问题: 是否可以在加载模块时捕获事件? 例如oninit.该链接解释了生命周期钩,但仅适用于组件:组件的生命周期挂钩 我找不到任何解释如何挂在模块的文档. 有人知道如何解决这个问题吗? 谢谢 解决方案 懒惰的模块的构造函数应执行 @NgModule({...}) export class MyLazyModule { constructor(/* service injection here if required */) { console.log('lazy module loaded'); } } 其他解决方案 有两个路由器事件可以使用:RouteConfigLoadStart和RouteConfigLoadEnd.您也可以使用LoadChildrenCallback.这些可能无法完全做您想要的,但仍然可以有所帮助. 您也可以使用以下技巧: @Ng
0 2024-02-21
编程技术问答社区
变化检测API 在Angular中的底层架构
我正在浏览本文,并对变更检测动作的工作方式感到困惑. 概念: Angular说它不会进行肮脏的检查,并且没有两种绑定,也没有像Angularjs 1.x一样观看.但是,我从文档和很少的博客 +堆栈中了解的是,每个组件都附加了一个更改检测器. 然而,从此堆栈溢出中, @gunter的回应:了解角度的​​变化检测2 使用更改tectionstrategy.onpush Angular运行更改检测,当在@input()中更新时,接收到DOM事件Angular Listens,或者ASYNC Pipe(| async)收到了一个新值. . 我知道它有一个听众,它会听取来自Angular的每一次更改.其次,如果我使用rughoutsIdeangular,它是否不在该组件或操作上创建更改检测器对象? 其他情况是如果您显式(this.zone.runoutsideangular())或出于某些其他原因,代码在Angulars区域外运行会修改组件的状态,也不会涵盖(即使代
Angular 5 ngOnChanges只在子组件中发射一次
我有一个包含复杂输入的子组件(某些图表数据). 在获得API响应后,我将通过Angular 5中的@Input()装饰器从父组件发送此图表数据.因此,我需要根据API响应在父组件上更改API响应,从而将图表同步.但不幸的是,我无法使其正常工作.我尝试设置带有基本数字类型的虚拟输入字段并徒劳地将其递增.这是我的实施: 子图组件: export class ChartComponent implements OnInit, OnChanges { @Input() chartData; @Input() triggerChart; ngOnChanges(changes: SimpleChanges) { console.log(changes); } } parent组件html:
2 2024-02-20
编程技术问答社区
Angular生命周期的钩子
i绘制一个代表组件生命周期流的草图 使用 sketch.io 完成文档关于Life-Cycle Hooks 我想出了这个草图. 现在,这是组件中生命周期钩的正确顺序吗? 解决方案 这是我从 angular.io 文档中了解的.这可能会对您有所帮助. 其他解决方案 您提供的草图有些正确.供您参考,我尝试实现每个钩子.为了确定它们的发生点,我将它们都记录到控制台. 供您参考,下面是我的控制台的屏幕截图,因为我允许我的应用程序加载并互相跟随每个生命周期. 这是第一次加载页面时的控制台. 因此,在此生命周期期间所调用的组件具有其自身的功能: 1)构造函数:一种默认方法,当类实例化时称为. 2) ngonchanges :创建新组件时执行,当具有@Input更改的界限之一时,它也是唯一称为参数的挂钩作为简单的. 3) ngoninit :一旦初始化了组件.这不允许在DOM上看到组件.这是在构造函数之后运行的. 4) ngdoc
2 2024-02-20
编程技术问答社区
Angular2中是否有类似window.onbeforeunload的生命周期钩子?
是否有window的生命周期挂钩. 我已经在Stackoverflow上搜索并搜索了,但没有发现 解决方案 或 @Component({ selector: 'xxx', host: {'window:beforeunload':'doSomething'} .. )} 或 @Component({ selector: 'xxx', .. )} class MyComponent { @HostListener('window:beforeunload') doSomething() { } } 这是聆听全球事件的方法.我不知道该事件的特殊行为是否得到支持,而返回值则用作构象对话框的文本. 您仍然可以使用 export class AppComponent { constructor() { w
0 2024-02-20
编程技术问答社区
如何检索一个视图的尺寸?
我有一个由TableLayout, TableRow and TextView组成的视图.我希望它看起来像一个网格.我需要获得此网格的高度和宽度.方法getHeight()和getWidth()始终返回0.当我动态格式化网格时以及我使用XML版本时,这会发生. 如何检索视图的尺寸? 这是我在调试中使用的测试程序来检查结果: import android.app.Activity; import android.os.Bundle; import android.widget.TableLayout; import android.widget.TextView; public class appwig extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
2 2024-02-19
编程技术问答社区
暂停和恢复录像
我是Android开发的新手,并且正在编程游戏.我的游戏具有在每个级别启动之前玩的切割,可以通过视频进行的切割.我的问题是,在应用程序暂停后,切割后再次从恢复时从头开始. @Override public void onPause() { super.onPause(); video.pause(); } @Override public void onResume() { super.onResume(); video.resume(); } 我们的问题是,该视频实际上并没有从我们暂停的地方恢复,而是从一开始就恢复了. 解决方案 您可以使用VideoView.getCurrentPosition()存储当前位置,然后VideoView.seekTo()回到该点.这样,您就不需要VideoView保持其状态. 重要的是,一旦完成操作完成后,使用正确的听众才能对VideoView.start()进行跟进. Java代码
2 2024-02-19
编程技术问答社区
安卓的onActivityResult NEVER调用
我的on Activitive result方法从未被调用.我正在使用Android 2.2 我正在使用一个TA​​BHOST,其中TABHOSTS包含包含单个活动的TABHOST. 我的个人活动之一运行以下意图 Intent intent = new Intent(); intent.setType("image/*"); intent.setAction(Intent.ACTION_GET_CONTENT); startActivityForResult(Intent.createChooser(intent, "Select Picture"), 0); 这加载了我的画廊应用程序,我使用默认的Android画廊选择一个图像,当我返回时,我的onActivityResult不称为我的活动. 看起来像这样 - 我在if(resultCode == 0)上放了一个断点,所以现在,我的ActivityResult
2 2024-02-19
编程技术问答社区
观察生命周期服务的实时数据
我正在使用Google Android体系结构组件,并且有一个前景服务,这是生命周期服务. 问题是,当我尝试从存储库中观察一个Livedata时,可观察到的并没有触发.如果我使用观察者而不是观察到它确实会触发. 什么可能导致这样的问题? 解决方案 事实证明,我在不打电话给Super.Onbind的情况下覆盖了of脚.这意味着我的观察者总是不活动 其他解决方案 使用repeatOnLifecycle()观察生命周期内流动的任何人,请确保使用Lifecycle.State.STARTED.像我们进行活动或片段一样使用恢复将永远不会触发流程收集.
0 2024-02-16
编程技术问答社区
onResume在viewmodel中不起作用。
仅在创建我的数据... IM使用ViewModel ...当按下返回按钮时不会更新以前的数据. 我提到了这一点,但这些都没有帮助 - > 在ViewModel中 我需要帮助 预先感谢 活动: - class MyAccount : BaseClassActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.myaccount) var mActionBarToolbar = findViewById(R.id.toolbartable); setSupportActionBar(mActionBarToolbar); setEnabledTitle()
2 2024-02-16
编程技术问答社区
最后打开的活动
我在启动上的应用程序打开了第一动态. 从第一阶段开始:第二级,第三级.当我按"主页"按钮然后返回我的应用程序时,它始终打开第一次活动,而不是打开最后一个活动(在使用onCreate()返回开始启动后). 我如何在上次活动上还原应用状态? 在代码中我不启动第一级. 我的清单:
0 2024-02-16
编程技术问答社区
为什么原生的WLClient生命周期会与Activity生命周期绑定?
简短版本 我发现WLClient生命周期与活动结合.活动生命周期由OS管理. 您是否有任何建议来补偿这一点? 长版本 对于Android Native Project,应通过以下呼叫创建一个WLCLIENT实例 WLClient.getInstance(Context ctx) 从API文档中,它是一个上下文,而不是一个活动,但实际上,WL框架中的wlpush.java中会有一种类型. 将WLCLIENT绑定到我们的生命周期不受我们控制的活动是没有意义的.因此,出于安全关注,应在创建新活动时重新创建每个WLCLIENT. 对于每个重新创建,都需要以下内容: 连接到服务器 构建挑战处理程序 我有以下错误,如果我通过了类(mainContext)继承应用程序(这是上下文): 09-26 13:33:29.571: E/AndroidRuntime(32300): FATAL EXCEPTION: pool-2-thread-4
2 2024-02-16
编程技术问答社区
片段中的片段,在onResume()之后立即调用onPause()。
在我的应用程序中,我有一个单个活动,其中包含用于片段的容器布局.在活动的 中 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Logger.enable(); setContentView(R.layout.activity_main); FragLobby fragLobby = (FragLobby)getSupportFragmentManager().findFragmentByTag(FragLobby.debugTag); if(fragLobby==null) fragLobby = new FragLobby(); FragmentHelper.replaceSupportFragment(this, fragLobby, R.id.llMain, false, Fra
0 2024-02-16
编程技术问答社区
重新启动时重新认证-安卓版
我需要每次调用onrestart时都需要重新验证用户凭据(通常这意味着用户已锁定并解锁屏幕或将其放在后台,然后返回到它). 所以我做到了: @Override protected void onRestart() { super.onRestart(); Intent intent = new Intent(this, LoginActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setAction(LoginActivity.REAUTHENTICATE); startActivity(intent); } 这起作用,显示了登录性,但是当它完成时,第一个活动的Onrestart再次调用,并再次打开登录. 我该如何处理? 解决方案 好吧,我用它来解决它: private static final int REAU