小编Enr*_*ico的帖子

什么决定了Dagger 2中组件(对象图)的生命周期?

我试图围绕Dagger 2中的范围,特别是范围图的生命周期.如何创建一个在离开示波器时将被清理的组件.

对于Android应用程序,使用Dagger 1.x,您通常在应用程序级别具有根范围,您可以扩展该范围以在活动级别创建子范围.

public class MyActivity {

    private ObjectGraph mGraph;

    public void onCreate() {
        mGraph = ((MyApp) getApplicationContext())
            .getObjectGraph()
            .plus(new ActivityModule())
            .inject(this);
    }

    public void onDestroy() {
        mGraph = null;
    }
}
Run Code Online (Sandbox Code Playgroud)

只要您保留对它的引用,子范围就存在,在这种情况下,它是您的Activity的生命周期.删除onDestroy中的引用可确保范围图可以自由地进行垃圾回收.

编辑

杰西威尔逊最近发布了一个mea culpa

Dagger 1.0严重搞砸了它的范围名称...... @Singleton注释用于根图和自定义图形,因此弄清楚事物的实际范围是很棘手的.

我读过/听过的其他一切都指向Dagger 2改进了范围的工作方式,但我很难理解其中的差异.根据@Kirill Boyarshinov在下面的评论,组件或依赖关系的生命周期仍然像往常一样通过具体的引用来确定.那么Dagger 1.x和2.0范围之间的差异纯粹是语义清晰度的问题吗?

我的理解

匕首1.x

依赖性是否是@Singleton.根图和子图中的依赖性同样如此,导致依赖关系绑定到哪个图形的模糊性(参见In Dagger是缓存的子图中的单例,或者当新的活动子图时它们总是被重新创建)是构造?)

匕首2.0

自定义范围允许您创建语义清晰的范围,但在功能上等同于@Singleton在Dagger 1.x中应用.

// Application level
@Singleton
@Component( modules = MyAppModule.class )
public interface MyAppComponent {
    void inject(Application app);
}

@Module
public class MyAppModule { …
Run Code Online (Sandbox Code Playgroud)

java lifecycle dagger-2

126
推荐指数
1
解决办法
2万
查看次数

压倒一切!重要的风格

标题几乎总结了它.

外部样式表具有以下代码:

td.EvenRow a{
  display: none !important;
}
Run Code Online (Sandbox Code Playgroud)

我尝试过使用:

element.style.display = "inline";
Run Code Online (Sandbox Code Playgroud)

element.style.display = "inline !important";
Run Code Online (Sandbox Code Playgroud)

但都不起作用.是否可以使用javascript覆盖!important样式.

如果这会产生影响,那么这就是一个关键的扩展.

javascript css

115
推荐指数
4
解决办法
18万
查看次数

常见的MySQL字段及其相应的数据类型

我正在建立一个非常小的MySQL数据库,存储,名字,姓氏,电子邮件和电话号码,我正在努力为每个字段找到"完美"的数据类型.我知道没有一个完美的答案,但必须有一些常见的常用惯例,例如这些.例如,我已经确定一个未格式化的美国电话号码太大而无法存储为unsigned int,它必须至少是一个bigint.

因为我相信其他人可能会觉得这很有用,我不想把我的问题限制在我上面提到的字段中.

哪些数据类型适用于常见数据库字段?电话号码,电子邮件和地址等字段?

mysql database types

108
推荐指数
5
解决办法
11万
查看次数

Django过滤器vs排除

django中filter和exclude之间有区别吗?如果我有

self.get_query_set().filter(modelField=x)
Run Code Online (Sandbox Code Playgroud)

我想添加另一个标准,下面两行代码之间有什么有意义的区别吗?

self.get_query_set().filter(user__isnull=False, modelField=x)

self.get_query_set().filter(modelField=x).exclude(user__isnull=True)
Run Code Online (Sandbox Code Playgroud)

是一种被认为是更好的做法还是在功能和性能方面都是一样的?

django django-queryset

27
推荐指数
3
解决办法
4万
查看次数

如何为WebJob项目设置连接字符串?

我正在尝试设置一个网站和webjob,但每次我尝试独立于网站发布webjob时都会出错(即Publish as Azure WebJob从上下文菜单中选择)

C:\ Program Files(x86)\ MSBuild\Microsoft\VisualStudio\v12.0\Web\Microsoft.Web.Publishing.targets(4270,5):错误:'MyWebJob.Models.MyDataEntities-Web.config连接字符串'参数不能为null或为空.
C:\ Program Files(x86)\ MSBuild\Microsoft\VisualStudio\v12.0\Web\Microsoft.Web.Publishing.targets(4270,5):错误:'MyWebJob.Models.MoreDataEntities-Web.config连接字符串'参数不能为null或为空.

部署WebJob有两种选择

当我将我的webjob链接到一个网站项目时,它会在网站上部署而不会出错.但是,当我尝试独立部署它时,我在控制台和错误列表中出现上述错误,但仍然部署了webjob.

如何独立部署我的webjob并摆脱这种持久的"错误"?

azure-web-sites visual-studio-2013 azure-webjobs

27
推荐指数
1
解决办法
6721
查看次数

如何自定义twitter小部件样式?

我刚刚在我的网站上实现了列表小部件:https://dev.twitter.com/docs/embedded-timelines

我只是想将背景颜色从白色覆盖到透明.由于它是嵌入式小部件,我无法直接编辑它.任何人都可以帮助我吗?

css twitter

16
推荐指数
2
解决办法
6万
查看次数

asp.net Web API中的CreateResponse方法

调用此方法:

public HttpResponseMessage PostProduct(Product item)
{
    item = repository.Add(item);
    var response = this.Request.CreateResponse<Product>CreateResponse(HttpStatusCode.Created, item);

    string uri = Url.RouteUrl("DefaultApi", new { id = item.Id });
    response.Headers.Location = new Uri(uri);
    return response;
}
Run Code Online (Sandbox Code Playgroud)

导致编译时错误:

'System.Web.HttpRequestBase' does not contain a definition for 'CreateResponse' and the
            best extension method overload 'System.Net.Http.HttpRequestMessageExtensions.CreateResponse<T>
(System.Net.Http.HttpRequestMessage, System.Net.HttpStatusCode, T)' has some invalid arguments.
Run Code Online (Sandbox Code Playgroud)

我在这里错过了什么?

asp.net-web-api

13
推荐指数
2
解决办法
2万
查看次数

Android库项目缺少类中的类

我正在尝试创建一个android库,moduleD,它取决于另一个库模块,而后者依赖于两个库模块.一切似乎都很好,但是ClassNotFoundException当我尝试在应用程序中使用库时,我得到了一个.

建立

MyLibrary/
 +-- moduleA
      +-- src/main/java/
           +-- com/example/a

 +-- moduleB
      +-- src/main/java/
           +-- com/example/b

 +-- moduleC
      +-- src/main/java/
           +-- com/example/b
           +-- com/example/c
                `-- MyMissingClass.java <-- MISSING

 +-- moduleD
      +-- src/main/java/
           +-- com/example/b
Run Code Online (Sandbox Code Playgroud)

build.gradle(模块C)

dependencies {
    compile project(':moduleA')
    compile project(':moduleB')
}
Run Code Online (Sandbox Code Playgroud)

build.gradle(模块D)

dependencies {
    compile project(':moduleC')
}
Run Code Online (Sandbox Code Playgroud)

在我的应用程序中,我调用ModuleD调用Module

为了完整起见,我在本地引用了最终的aars,但我不认为这是问题所在.在moduleD中解压缩classes.jar,我可以看到moduleD的类文件,但不能看到MyMissingClass.

build.gradle(在单独的应用程序项目中)

repositories {
...
    flatDir {
        dirs 'libs'
    }
}
dependencies {
    compile(name:'moduleB', ext:'aar')
}
Run Code Online (Sandbox Code Playgroud)

无解

传递依赖[1] [2]

[1]:如何在android库gradle项目中包含依赖项? [2]:如何发送具有远程依赖项(gradle)的Android库(aar)?

build.gradle(应用程序)

dependencies { …
Run Code Online (Sandbox Code Playgroud)

android android-studio android-gradle-plugin

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

绑定服务泄漏内存

根据 Android 文档编写了一个基本的绑定服务,但 LeakCanary 告诉我该服务正在泄漏。

  1. 是否存在泄漏或我是否错误配置了 LeakCanary?
  2. 如何编写不泄漏的绑定服务?

编码

class LocalService : Service() {

  private val binder = LocalBinder()
  private val generator = Random()

  val randomNumber: Int
    get() = generator.nextInt(100)

  inner class LocalBinder : Binder() {
    fun getService(): LocalService = this@LocalService
  }

  override fun onBind(intent: Intent): IBinder {
    return binder
  }

  override fun onDestroy() {
    super.onDestroy()
    LeakSentry.refWatcher.watch(this) // Only modification is to add LeakCanary
  }
}
Run Code Online (Sandbox Code Playgroud)

如果我从一个活动绑定到服务如下,LeakCanary 检测到服务已经泄漏

class MainActivity: Activity() {

  private var service: LocalService? …
Run Code Online (Sandbox Code Playgroud)

android android-service android-service-binding leakcanary

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

为什么我的c ++对象不会影响另一个c ++对象?

我有一个简单的c ++类,intHolder,它只包含一个int.它也可以添加到int,它可以工作,或者将自己添加到另一个intHolder中包含的另一个int,这不起作用.这与我在Java中遇到的情况完全不同.这是怎么回事?

class intHolder{
private:
    int i;
public:
    intHolder(int myInt){i = myInt;}
    void addToInt(int inc){ i = i + inc;}
    void printInt(){cout << i << endl;}
    void addToOtherInt(intHolder other){other.addToInt(i);}
};
Run Code Online (Sandbox Code Playgroud)

主要方法

int main () {
    intHolder ih1(1);
    ih1.printInt();//Should be 1, is 1
    ih1.addToInt(3);
    ih1.printInt();//Should be 4, is 4
    intHolder ih2(2);
    ih2.printInt();//Should be 2, is 2
    ih1.addToOtherInt(ih2);
    ih1.printInt();//Should be 4, is 4
    ih2.printInt();//Should be 6, is 2
};
Run Code Online (Sandbox Code Playgroud)

c++

3
推荐指数
1
解决办法
157
查看次数

在Azure上运行时缺少节点模块

更新我的hubot项目后,它不再在Azure上运行.我可以在OS X和Windows上本地运行干净的副本,但在Azure上我收到以下错误

错误无法加载适配器松弛 - 错误:找不到模块'hubot'

在本地,我安装了节点6.9.1和npm 3.10.9.Azure分别使用版本6.9.0和3.10.8.

不幸的是,我还没弄清楚如何收集更多信息,因为节点应用程序似乎没有达到产生任何更详细输出的程度.

该项目和Azure网站最初是在去年创建的,在我更新了npm依赖项和节点版本后开始失败.但是,在恢复到节点4.x和npm 2.x或节点0.10.x或npm 1.x后,我仍然得到相同的错误.

这是我很大程度上未经修改的hubot项目,它可以重现错误.README包含我将其部署到Azure的步骤.

任何见解将不胜感激

编辑1

的package.json

...
"dependencies": {
    "coffee-script": "^1.11.1",
    "hubot": "^2.19.0",
    "hubot-diagnostics": "0.0.1",
    "hubot-google-images": "^0.2.6",
    "hubot-google-translate": "^0.2.0",
    "hubot-help": "^0.2.0",
    "hubot-maps": "0.0.2",
    "hubot-pugme": "^0.1.0",
    "hubot-rules": "^0.1.1",
    "hubot-scripts": "^2.17.2",
    "hubot-shipit": "^0.2.0",
    "hubot-slack": "^4.2.1"
},
...
Run Code Online (Sandbox Code Playgroud)

hubot在package.json中的依赖项中列出 - 如果不是,它将无法在本地运行.我知道kudu运行npm install --production,所以我确定它是依赖项而不是devDependencies.

编辑2

Gary Liu - MSFT能够对原因有所了解并提供了一种解决方法,但为什么hubot-slack: 4.+在其他地方运行时不能在Azure上运行?

azure node.js iisnode azure-web-sites kudu

3
推荐指数
1
解决办法
1351
查看次数