问题列表 - 第33625页

Android:即使我调用unregisterReceiver,也会抛出泄漏的IntentReceiver异常

我不明白为什么我在按下后退按钮时会遇到此异常.我在onCreate方法中注册了IntentReceiver,它应该在onPause方法中取消注册.我在onPause方法内部的Log.w()调用让我相信正在调用unregisterReceiver()方法,但我仍然得到这个异常.

有什么想法吗?

private PlayerReceiver playerReceiver;

public void onCreate(Bundle savedInstanceState) {
 ...
     IntentFilter playerFilter;     
     playerReceiver = new PlayerReceiver();
     playerFilter = new IntentFilter(PlayerService.BUFFERING_FAILURE);
     playerFilter.addAction(PlayerService.BUFFERING_SUCCESS);
     registerReceiver(playerReceiver, playerFilter);
 ...
}

protected void onPause() {
 ...
     if (playerReceiver != null){
         unregisterReceiver(playerReceiver);
         Log.w(TAG, "playerReceiver has been unregistered");
         playerReceiver = null;
     }
 ...
}

public class PlayerReceiver extends BroadcastReceiver {

    public void onReceive(Context context, Intent intent) {
        if (intent.getAction().equals(PlayerService.BUFFERING_FAILURE)){
            setListenButton(false);
        }
        closePlayDialog();
    }
}
Run Code Online (Sandbox Code Playgroud)

LogCat输出

08-26 11:44:28.646: WARN/WWOZMain(1058): playerReceiver has been unregistered    
08-26 11:44:29.476: ERROR/ActivityThread(1058): Activity org.wwoz.WWOZMain …
Run Code Online (Sandbox Code Playgroud)

android exception

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

如何在WPF Tickbar上使用字符串值代替刻度?

我希望自定义基本WPF的外观TickBar.我想知道是否有一种简单的方法可以使用控件模板:

我希望用数字代替刻度线上的刻度.我希望数字的位置对应于滑块的​​值(很像链接中的图片).

我已经搜索了一个建议,我发现创建了一个继承自TickBar并覆盖它的OnRender方法的类.

我更愿意找到一个不涉及这个问题的解决方案.我真的希望使用控件模板来做到这一点.所以,如果有一个这样的解决方案,建议将不胜感激!:)

.net wpf slider wpf-controls

10
推荐指数
1
解决办法
7528
查看次数

在C++中使用NULL?

可能重复:
你对C++中的指针使用NULL还是0(零)?

在C++中使用NULL或仅使用0值是个好主意吗?

在使用C++调用的C代码中是否存在使用NULL的特殊情况?像SDL?

c++ null

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

Python:如何将int转换为带有设定位数的字符串表示?

几乎就是它在那里所说的.

基本上,我如何获得生成的字符串

print "%05d" % 100
Run Code Online (Sandbox Code Playgroud)

python string

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

带模式的XSLT apply-template - 没有匹配模式的结果不正确

这是一个简单的案例.

这是我的XML:

<?xml version="1.0" encoding="utf-8" ?>
<dogs>
    <dog type="Labrador">
        <Name>Doggy</Name>
    </dog>
    <dog type="Batard">
        <Name>Unknown</Name>
    </dog>
</dogs>
Run Code Online (Sandbox Code Playgroud)

此XML与两个Xslt一起使用.这是常见的一个:

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl">
    <xsl:output method="text"/>

    <xsl:template match="dogs">
        <xsl:text>First template&#13;&#10;</xsl:text>
        <xsl:apply-templates select="." mode="othertemplate" />
    </xsl:template>
</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)

这是孩子一:

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl">
    <xsl:include href="transform.xslt"/>

    <xsl:template match="dogs" mode="othertemplate">
        <xsl:text>&#9;&#9;Other template</xsl:text>
    </xsl:template>
</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)

孩子包括常见的孩子(称为transform.xslt).

当我执行孩子时,我得到了预期的结果:

First template
        Other template
Run Code Online (Sandbox Code Playgroud)

当我执行常见的,我得到这个奇怪的结果:

First template


        Doggy


        Unknown
Run Code Online (Sandbox Code Playgroud)

常见的模板应用模式"othertemplate".此模式仅在子xslt中包含.

我想要的是,如果没有模板"othertemplate",那么就不应输出任何内容.

我不希望为所有不必使用此模板模式的xslt文件包含模式为"othertemplate"的模板和空体...

我该怎么办?

谢谢

xslt mode

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

函数如何检测字符串指针与字符串文字参数?

我遇到过一个函数,它可以区分被调用

foo("bar");
Run Code Online (Sandbox Code Playgroud)

VS

const char *bob = "bar";
foo(bob);
Run Code Online (Sandbox Code Playgroud)

我想到的可能性是:

  • 字符串的地址:两个参数都位于图像的.rdata部分.如果我在同一个程序中进行两次调用,则两个调用都会收到相同的字符串地址.
  • RTTI:不知道如何使用RTTI来检测这种差异.

我能想到的唯一可行的例子是:

void foo(char *msg)
{
    printf("string literal");
}

void foo(const char *&msg)
{
    printf("string pointer");
}

foo("bar");                 // "string literal"

const char *soap = "bar";
foo(soap);                  // "string pointer"
Run Code Online (Sandbox Code Playgroud)

我无法访问函数的代码,头文件中的声明只显示了一个函数声明.

c++ string literals detect

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

我已经将HttpServletRequest注入到bean中.我该如何对它进行单元测试?

我有一个bean,HttpServletRequest@Autowired在其中使用注释注入了一个.

当应用程序上下文是Web应用程序上下文时,此注入正常工作.对于使用Spring的JUnit测试的应用程序上下文,情况并非如此.

我该如何测试这个bean?也许我可以模拟一个http请求,但是如何在bean中注入这个模拟?

这是在Spring 3.0和Junit 4.4上

junit spring

6
推荐指数
1
解决办法
2683
查看次数

"类不应该在其构造函数中执行涉及依赖项的工作."

因此,引用来自".NET中的依赖注入".考虑到这一点,下面的类是错误设计的吗?

class FallingPiece { //depicts the current falling piece in a tetris game
    private readonly IPieceGenerator pieceGenerator;
    private IPiece currentPiece;

    public FallingPiece(IPieceGenerator pieceGenerator) {
        this.pieceGenerator = pieceGenerator;
        this.currentPiece = pieceGenerator.Generate(); //I'm performing work in the constructor with a dependency!
    }

    ...
}
Run Code Online (Sandbox Code Playgroud)

所以这个FallingPiece班级有责任在俄罗斯方块游戏中控制当前掉落的棋子.当这件作品撞到底部或其他地方时,会发出一个事件信号,然后通过工厂生成另一个从上面再次开始下落的新件.

我看到的唯一替代方法是使用Initialize()方法生成该块,但IMO有点违背了让构造函数将对象置于有效状态的想法.

c# java oop dependency-injection

12
推荐指数
2
解决办法
570
查看次数

2071
推荐指数
28
解决办法
40万
查看次数

为什么这个(不相关的)子查询会导致这样的问题?

我有一个大型查询,其中一个简单的子查询优化将其从 8 分钟缩短到 20 秒。我不确定我是否理解为什么优化会产生如此剧烈的影响。

本质上,这是问题部分:

SELECT  (bunch of stuff)
FROM
  a LEFT OUTER JOIN b ON a.ID = b.a
  LEFT OUTER JOIN c ON b.ID = c.b
  ...
  ...
      INNER JOIN veryLargeTable 
      ON a.ID = veryLargeTable.a 
         AND veryLargeTable.PetID = 
             (SELECT id from Pets WHERE Pets.Name = 'Something')    /* BAD! */
  ...
  ...
Run Code Online (Sandbox Code Playgroud)

总共有 16 个连接表。如果我用veryLargeTable包含 petID 的预填充变量替换连接的第二个谓词(而不是使用子查询),则整个查询会显着加快:

AND veryLargeTable.PetID = @petID   /* Awesome! */
Run Code Online (Sandbox Code Playgroud)


显然,(SELECT id from Pets WHERE Name = 'Something')正在为每一行执行。有两件事我不完全理解:

  1. 据我所知,这是一个不相关的子查询。Pets …

sql t-sql sql-server sql-server-2005 subquery

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