我希望广播接收器以这种方式启动我的应用程序:
如果应用程序不在前台或后台,请将其启动,就好像它是从启动器启动一样.
如果应用程序在后台,请将其带到最后一个状态的前台.
如果应用程序位于前台,则不执行任何操作.
这是我的代码:
@Override
public void onReceive(Context context, Intent intent) {
Intent launch_intent = new Intent("android.intent.action.MAIN");
launch_intent.setComponent(new ComponentName("com.example.helloworld","com.example.helloworld.MainActivity"));
launch_intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
launch_intent.addCategory(Intent.CATEGORY_LAUNCHER);
launch_intent.putExtra("some_data", "value");
context.startActivity(launch_intent);
}
Run Code Online (Sandbox Code Playgroud)
MainActivity是我的根活动.就像我说的,如果应用程序已经运行,我只是想把它带到前面而不改变它的状态.如果在MainActivity之上有一些活动,请保持原样.
大多数情况下上面的代码工作正常,但有时我注意到应用程序重新启动(或状态被重置 - 根回到顶部)当它从后台运行时.
我应该使用什么代码?任何帮助表示赞赏!
在Ionic 2网站上找不到任何信息.例如,使用Ionic库2.0.1创建项目.如何将其更新到Ionic library 2.1.0?什么是标准程序?ionic lib update
已弃用.
jsPDF的addHTML
要求html2canvas.js
或rasterizeHTML.js
.
我想使用,rasterizeHTML.js
但它不起作用.在网上找不到任何例子.
使用html2canvas.js
:
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.2.61/jspdf.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/html2canvas/0.4.1/html2canvas.min.js"></script>
<body>
<p id="to-pdf">HTML content...</p>
</body>
Run Code Online (Sandbox Code Playgroud)
JS
var pdf = new jsPDF('p','pt','a4');
pdf.addHTML(document.body,function() {
pdf.save('web.pdf');
});
Run Code Online (Sandbox Code Playgroud)
不工作rasterizeHTML.js
(没有任何反应;没有错误):
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.2.61/jspdf.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/rasterizehtml/1.2.2/rasterizeHTML.allinone.js"></script>
<body>
<p id="to-pdf">HTML content...</p>
</body>
Run Code Online (Sandbox Code Playgroud)
JS
var pdf = new jsPDF('p','pt','a4');
pdf.addHTML(document.body,function() {
pdf.save('web.pdf');
});
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
对于正常/软重新加载,浏览器将重新验证缓存,检查文件是否被修改。
我在 Chrome 上测试过。我有一个网页index.html
,它在body
. 当点击刷新按钮(软/正常)时,我从网络面板看到的index.html
是304 Not Modified
,这很好。但是,所有 javascript 文件都加载from memory cache
了状态代码 200。没有重新验证!
然后我尝试修改其中一个 javascript 文件。有没有软重载。你猜怎么着?该文件仍然是从内存缓存中加载的!
为什么 Chrome 会这样做?这不会破坏刷新按钮的目的吗?
以下是有关 Chrome 内存缓存的更多信息。
我在网上找了两篇文章:
让我感到困惑的是他们使用的术语索引和访问。他们指的是同一件事吗?
以数组为例:
第一个说访问的大 O 是 O(1)。第二个说索引的大 O 是 O(1)。所以我假设他们都说给定一个索引x
,你可以得到array[x]
O(1) 中的值。
以哈希表为例:
第一个说 Big O of Access 是 N/A。我认为这是因为使用哈希表,您只能通过键进行搜索。您不会通过索引检索值。但是第二个说索引的大 O 是 O(1)。也许这次是指搜索?
现在以二叉树为例:
第一个:访问是 O(logN)。第二个:索引是 O(logN)。
什么?
所以现在他们都指的是搜索?您不能通过索引从二叉树中检索值,对吗?
请帮我澄清一下。谢谢!
我正在学习打字稿。在研究某些源文件时,我发现声明文件中有时存在export declare ...
,有时只是存在。export ...
.d.ts
经过一些测试,在我看来它们是等效的。没有declare
就没有区别。
我知道declare
没有需要export
。例如,declare var test:any;
。
但它是真实的export declare
和export
等价?
附带的问题:和declare
完全不需要吗?在如果我把刚才的文件,则是随处可见没有。这是为什么?interface
type
.d.ts
interface test{}
test
declare
我的Android应用程序连接到我服务器上的Web服务.昨天一切正常,但今天我收到了错误.
我没有对Web服务或应用程序进行任何更改.我怀疑我的服务器出了问题,但不知道从哪里开始.
我在Android 5和Android 6设备上都进行了测试.
这是错误:
HTTPClient: (TiHttpClient-3) [1136,1136] HTTP Error (javax.net.ssl.SSLHandshakeException): Handshake failed
[ERROR] : TiHTTPClient: javax.net.ssl.SSLHandshakeException: Handshake failed
[ERROR] : TiHTTPClient: at com.android.org.conscrypt.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:396)
[ERROR] : TiHTTPClient: at com.android.okhttp.internal.http.SocketConnector.connectTls(SocketConnector.java:103)
[ERROR] : TiHTTPClient: at com.android.okhttp.Connection.connect(Connection.java:143)
[ERROR] : TiHTTPClient: at com.android.okhttp.Connection.connectAndSetOwner(Connection.java:185)
[ERROR] : TiHTTPClient: at com.android.okhttp.OkHttpClient$1.connectAndSetOwner(OkHttpClient.java:128)
[ERROR] : TiHTTPClient: at com.android.okhttp.internal.http.HttpEngine.nextConnection(HttpEngine.java:341)
[ERROR] : TiHTTPClient: at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:330)
[ERROR] : TiHTTPClient: at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:248)
[ERROR] : TiHTTPClient: at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:437)
[ERROR] : TiHTTPClient: at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:388)
[ERROR] : TiHTTPClient: at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getHeaders(HttpURLConnectionImpl.java:150)
[ERROR] : TiHTTPClient: at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getHeaderField(HttpURLConnectionImpl.java:194) …
Run Code Online (Sandbox Code Playgroud) 根据文档,$route.current
包含controller
和locals
.
例如,如果这是我的路线之一:
$routeProvider
.when('/item1/:value', {
templateUrl: 'item1.html',
controller: 'Item1Controller',
title: 'Item 1'
});
Run Code Online (Sandbox Code Playgroud)
{{$route.current}}
打印出来 {"params":{"value":"value1"},"pathParams":{"value":"value1"},"loadedTemplateUrl":"item1.html","locals":{"$template":"<p>item 1:{{params}}</p>","$scope":"$SCOPE"},"scope":"$SCOPE"}
为什么没有controller
?
{{$route.current.title}}
打印出“项目 1”。但上面没有财产title
?
究竟$route.current
包含什么?
我正在学习反应。
看来 React 非常促进组合。Create React App甚至建议不要重用 css 类。
假设我有一个容器,它是一个白色的盒子,有漂亮的圆角和阴影等。它可以包含任何东西。就是这样。没有逻辑。除了a之外没有太多html<div>
传统上,我只会创建一个名为的全局 css 类.white-box
,然后将其应用到任何<div>
我希望它成为这个白框的类。
我知道在 React 中你也可以做到这一点。你想做什么,就可以做什么。但一般做法是什么?从我在网上找到的内容来看,我似乎应该为它创建一个组件并将所有子组件放入其中:
<WhiteBox>
<div>anything</div>
</WhiteBox>
是不是太过分了?这样做有什么好处?我是否应该为所有可以重用的东西创建一个组件,即使它很小?
我有一个两年前的 AngularJs 1.x 项目,它是用 Gulp 构建的用于开发和 Grunt 用于生产(不要问我为什么;我也不知道)。
构建过程基本上是:
将所有scss文件编译成一个css文件
将所有 JS 文件合并为一个 JS 文件。我们没有使用任何import
机制。每个文件基本上都是 AngularJs 的控制器、组件、服务或过滤器之一。像这样的东西:
angular.module("myApp").controller("myCtrl", function() {//...});
Run Code Online (Sandbox Code Playgroud)将所有 html 模板合并为一个 JS 文件。每个模板都使用$templateCache
.
将图像和字体等资产移动到构建文件夹中。
将第三方库移动到 build 文件夹中。
现在我想为这个项目切换到 webpack。我想逐步实现这个项目的现代化,但第一步只是使用 webpack 构建它,过程与上述类似。我想尽可能保持代码库相同。我还不想import
为所有 JS 文件添加。有太多了。我还想添加一个babel-loader。
我有一些关于 webpack 的基本概念,但我自己从来没有真正定制过配置。
有人可以给我一些指点吗?比如我需要哪些加载器/插件等?谢谢!
我正在使用md-autocomplete
Angular Material:这里
下拉菜单的宽度似乎与输入字段的宽度一致。如果项目的文本太长,则有ellipsis
.
但是,我想显示项目的全文,同时保持输入字段的宽度相对较短。也就是说,下拉菜单的宽度应该随着其内容而扩展。
我尝试检查md-autocomplete
's 元素的样式,但找不到任何可以解决问题的样式。任何的想法?
编辑:
这是我最终拥有的风格:
.md-autocomplete-suggestions-container{
overflow-y:scroll
}
.md-autocomplete-suggestions-container .md-virtual-repeat-scroller{
position:static
}
.md-autocomplete-suggestions-container .md-virtual-repeat-sizer{
height:0 !important
}
.md-autocomplete-suggestions-container .md-virtual-repeat-offsetter{
position:static
}
Run Code Online (Sandbox Code Playgroud)
然而,还有一个问题。将overflow-y:scroll
始终显示vertial滚动条,即使在不需要的时候。如果我将其更改为overflow-y:auto
,则出现时的垂直滚动条将创建ellipsis
. 我该如何解决这个问题?
我是React的新手。
从Create React App引用:
通常,我们建议您不要在不同组件之间重用相同的CSS类。例如,建议不要在AcceptButton和RejectButton组件中使用.Button CSS类,而建议创建具有自己的.Button样式的Button组件,AcceptButton和RejectButton都可以呈现(但不能继承)。
遵循此规则通常会使CSS预处理器的使用率降低,因为诸如mixins和nesting之类的功能已被组件组成所取代。
我认为我不太了解。为什么在组合中,无聊的嵌套和混用不太有用?有什么例子吗?
这是否还意味着我不应该使用全局样式(例如,对于输入字段)?如果我的应用程序中的所有输入字段看起来都相同或相似,那么我应该为它创建一个组件,只是出于样式目的吗?
async/await函数的目的是简化同步使用promises的行为,并对一组Promises执行某些行为.就像Promise类似于结构化回调一样,async/await类似于组合生成器和promise.
我理解async/await,generator和promise的基本概念.但是,我并不完全理解async/await类似于组合生成器和promise的含义.
那么异步/等待简化了生成器和承诺可以一起做什么?任何例子?