我正在尝试注册一个广播接收器,它捕获Android从市场安装应用程序后启动的"com.android.vending.INSTALL_REFERRER"意图.
我在此处详细了解:http://code.google.com/mobile/analytics/docs/android/#referrals
但是,我无法使用Google Analytics,因此我创建了自己的解决方案.我在清单文件中添加了以下内容:
<receiver android:name="com.test.Receiver" android:exported="true">
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>
Run Code Online (Sandbox Code Playgroud)
并创建了一个基本的BroadcastReceiver类:
public class Receiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Bundle extras = intent.getExtras();
String referrerString = extras.getString("referrer");
Log.w("TEST", "Referrer is: " + referrerString);
}
}
Run Code Online (Sandbox Code Playgroud)
然而,当安装应用程序时,接收器似乎没有捕获Intent(如果Intent甚至广播?)并且我没有记录输出.
我在某个地方出错了还是市场在安装应用程序时不再启动这些Intent?
QThread的Qt文档说是从QThread创建一个类,并实现run方法.
以下内容来自4.7 Qthread文档......
要创建自己的线程,请继承QThread并重新实现run().例如:
class MyThread : public QThread
{
public:
void run();
};
void MyThread::run()
{
QTcpSocket socket;
// connect QTcpSocket's signals somewhere meaningful
...
socket.connectToHost(hostName, portNumber);
exec();
}
Run Code Online (Sandbox Code Playgroud)
所以在我创建的每一个线程中,我都做到了这一点,并且对于大多数事情来说它工作正常(我没有在我的任何对象中实现moveToThread(this)并且它工作得很好).
我上周遇到了障碍(设法通过解决我创建对象的地方来解决它)并找到了以下博文.这里基本上说子类化QThread确实不是正确的方法(并且文档不正确).
这是来自Qt的开发人员,所以乍一看我很感兴趣,经过进一步的反思,同意他.按照OO原则,你真的只想子类化一个类来进一步增强该类......不要直接使用类方法......这就是为什么要实例化...
让我们说我想将一个自定义QObject类移动到一个线程......这样做的"正确"方法是什么?在那篇博客文章中,他说'他在某个地方有一个例子......但如果有人可以向我进一步解释它,我将不胜感激!
更新:
由于这个问题引起了如此多的关注,下面是4.8文档的复制和粘贴,以及实现QThread的"正确"方式.
class Worker : public QObject
{
Q_OBJECT
QThread workerThread;
public slots:
void doWork(const QString ¶meter) {
// ...
emit resultReady(result);
}
signals:
void resultReady(const QString &result);
};
class Controller : public QObject
{
Q_OBJECT
QThread workerThread;
public:
Controller() {
Worker *worker = …Run Code Online (Sandbox Code Playgroud) 我有一个数据密集型的Python脚本,它使用HTTP连接来下载数据.我通常一夜之间运行它.有时连接会失败,或者网站暂时无法使用.我有基本的错误处理,捕获这些异常并定期再次尝试,在重试5分钟后正常退出(并记录错误).
但是,我注意到有时这项工作就冻结了.不会抛出任何错误,并且作业仍在运行,有时在最后一条打印消息后几小时.
什么是最好的方式:
UPDATE
感谢大家的帮助.正如你们中的一些人所指出的那样,urllib和socket模块没有正确设置超时.我使用的Python 2.5与游离碱和urllib2的模块,并捕捉和处理MetawebErrors和urllib2.URLErrors.以下是最后一个脚本挂起12小时后的错误输出示例:
File "/home/matthew/dev/projects/myapp_module/project/app/myapp/contrib/freebase/api/session.py", line 369, in _httpreq_json
resp, body = self._httpreq(*args, **kws)
File "/home/matthew/dev/projects/myapp_module/project/app/myapp/contrib/freebase/api/session.py", line 355, in _httpreq
return self._http_request(url, method, body, headers)
File "/home/matthew/dev/projects/myapp_module/project/app/myapp/contrib/freebase/api/httpclients.py", line 33, in __call__
resp = self.opener.open(req)
File "/usr/lib/python2.5/urllib2.py", line 381, in open
response = self._open(req, data)
File "/usr/lib/python2.5/urllib2.py", line 399, in _open
'_open', …Run Code Online (Sandbox Code Playgroud) 我有一个巨大的模板文件,只使用了很少的函数,我想隔离那部分进行测试并评论另一半.我怎样才能找到最好的方法呢?
如何在Windows系统上执行此操作,模板文件是.hxx?
我正在开发一个通过ajax提交法语翻译的rails应用程序,由于某种原因,我在日志中不断收到以下错误:
Encoding::CompatibilityError incompatible character encodings: UTF-8 and ASCII-8BIT
有谁知道如何解决这一问题?
FIX:这适用于WEBrick服务器
放置# encode: UTF-8在您希望使用不同字符的每个文件的顶部
我无法让这个在带有Thin的rails服务器上工作...其他人遇到这个?
人们如何设计服务层接口?
我正在编写一个大型Web应用程序(在PHP中),我们正在使用MVC,并编写精简控制器,例如(伪代码如下)
public savePersonAction() {
$input = filter($_GET);
... input validation ...
$result = $this->_service->savePerson( ? );
... etc
}
Run Code Online (Sandbox Code Playgroud)
应该在服务中的savePerson采用整个$ input结构或上下文的参数(在PHP中,是一个关联数组)?
这个 -
public function savePerson(array $input) {
Run Code Online (Sandbox Code Playgroud)
或者应该将所有输入字段分开并提供"硬"接口,例如
public function savePerson($title, $firstName, $lastName, $dateOfBirth, ... etc.. for many more) {
Run Code Online (Sandbox Code Playgroud)
谢谢.
保罗
php model-view-controller service web-applications service-layer
根据http://download.oracle.com/javase/1.4.2/docs/api/java/lang/Class.html#getDeclaredMethods%28%29,Class.getDeclaredMethods()应该只包含"由类声明的方法" ".但是,我在下面的测试代码中得到了一些非常令人惊讶的结果:
import java.util.Arrays;
class A {
public static A m1() { return null; }
public static A m2() { return null; }
public static A m3() { return null; }
}
class B extends A {
public static A m1() { return null; }
public static B m2() { return null; }
// public static Object m3() { return null; } won't compile
}
public class Scratch {
public static void main(final String[] args) {
System.out.println(Arrays.asList(B.class.getDeclaredMethods()));
} …Run Code Online (Sandbox Code Playgroud) 我一直在阅读有关"如何推广开源项目"的SO回答问题的积压.毫不奇怪,许多答案将人们指向SoureForge/FreshMeat和其他网站等以及博客和诸如此类的东西.这开始让我想到哪里是举办项目的最佳地点,为什么?
由于我的第一个项目目前托管在CodePlex上,我开始浏览Google搜索结果,以收集有关每个项目的优缺点的信息; 然而,我发现的比较相当过时(2岁以上).
http://www.stum.de/2008/12/13/sourceforge-vs-codeplex/
http://www.developmentnow.com/blog/2006/11/codeplex-vs-sourceforge/
http:// www. spacesocket.com/forum/thread-6654.html
等...
所以接下来的问题就变成了"我应该在多个站点上托管我的项目",以下帖子提供了预期的答案(谢天谢地!因为这样做很难维护).
基于CodePlex,GitHub,Google Code,SourceForge等各种开源托管网站的现状,是否有一个网站的显着优点/缺点?即,我应该坚持使用CodePlex还是我错过了不使用其中一种替代品?是否会为一个新的未知项目带来更多流量?
我计划更详细地探索每个网站,看看它们都提供了什么,但鉴于对SO的优秀人员的广泛了解,我想先从这个问题开始.
更新
根据下面的erjiang答案......我目前正在使用Mercurial进行版本控制,我对TFS以外的任何东西都持开放态度.此外,我目前的项目只是我的开发,但未来的项目可能是协作的,所以值得考虑...
我正在阅读一篇关于元编程的文章,它表明你可以在另一个方法中定义一个方法.这是我已经知道了一段时间的事情,但它让我问自己一个问题:这有什么实际应用吗?在方法中定义方法是否有任何实际用途?
例如:
def outer_method
def inner_method
# ...
end
# ...
end
Run Code Online (Sandbox Code Playgroud) 可能有人解释的区别是什么之间epoll,poll和线程池?
epoll和poll有特定的Linux ...是否有适用于Windows的等量替代?