小编Mr_*_*s_D的帖子

Android设计:后台长时间运行服务还是AlarmManager?

我正在构建一个应用程序,它将定期监视电池状态,wifi连接和位置数据,并将结果写入文件(然后将其发送到服务器).在安装应用程序时,应禁用监视 - 但启用它的用户应在重新启动后继续运行.经过大量阅读后,我意识到我基本上有两种选择:

  • 子类Service并从我的活动中解雇它.将它设置在前景,STICKY和什么不是,并希望它不被android杀死 - 并注意如果android重新创建它(实际上应该有3个服务,因此它们之间的同步可能是凌乱的).在服务中启动一个线程(我猜不需要Executors)并拥有它Thread.sleep(REGULAR_INTERVAL).唤醒,收集数据将它们写入文件.广播收集的信息并将其显示在我的活动中(如果它正好在运行(将注册广播接收器)).冲洗并重复while(true).有办法打断这个
  • 让我的活动在AlarmManager中注册一个PendingIntent - 它将运行每个REGULAR_INTERVAL.我没有深入研究这种方法的技术细节 - 但我希望我能够使这个PendingIntent创建并运行一个IntentService(这似乎是要走的路 - 免费使用Thread机器以及关闭在其自己的).这种方法的一些框架代码将受到欢迎.

我想我必须在两种情况下注册启动接收器以检查共享首选项(已经完成此操作),并且在情况1启动服务的情况下,在案例2中为注册事件注册接收器并设置警报管理器 - 这是我需要一些骨架代码的部分.

所以 - 在我开始构建之前 - 这将是首选方法?

在概述中 - 应用程序应监视某些手机属性并将其写入文件,直到用户选择将其关闭.

boot android alarmmanager

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

Android:应该在哪里定义/注册OnSharedPreferenceChangeListener

设计问题基本上 - 有一个PreferenceActivity应该让它实现OnSharedPreferenceChangeListener或者应该在另一个类中定义这个功能 - 比如在内部类中?是否有人会更倾向于采用另一种方法?

还应该在哪里注册听众?我的意思是文档和常识分别要求注册/取消注册,onResume/onPause但我看到 很多 注册,onCreate我只是想知道我是否遗漏了一些东西.

此外,我不确定是否取消注册失败(因此这里例如取消注册可能不会被调用,因为onStop不能保证被调用)必然会导致泄漏.所以,如果我有

class MyPref extends PreferenceActivity implements
            OnSharedPreferenceChangeListener {
    SharedPreferences sharedPreferences;
    // init sharedPreferences
    onStart(){
        sharedPreferences.registerOnSharedPreferenceChangeListener(this);
    }
    // no unregistration
}
Run Code Online (Sandbox Code Playgroud)

MyPref一旦我回到我的其他活动,这会泄漏实例吗?

最后 - 同样的考虑适用于OnPreferenceChangeListener

编辑:回到那个我看不到实际注销的方法OnPreferenceChangeListener- 我是盲目吗?

android android-preferences

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

Python包"没有名为......的模块"

我是Python的新手,我正在创建我的第一个简单包.这是我的结构:

Math/
    __init__.py
    divide.py
    minus.py
    multiply.py
    plus.py
Run Code Online (Sandbox Code Playgroud)

四个文件中的每一个都声明了一个简单的数学函数.我的init文件很简单

from plus import *
from minus import *
from multiply import *
from divide import *
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试"导入数学"时,我收到以下错误:

Traceback (most recent call last):
  File "<pyshell#0>", line 1, in <module>
    import Math
  File ".\Math\__init__.py", line 1, in <module>
    from plus import *
ImportError: No module named 'plus'
Run Code Online (Sandbox Code Playgroud)

是的,我知道我的包裹必须在正确的文件夹中; 如果我将我的任何一个文件移到Math文件夹之外并从shell上单独运行导入调用它就可以了.

python import package python-3.x

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

如何共享 git svn 配置?

所以我设置了一个 git-svn repo 并将其推送到 github。但是,如果克隆它,则克隆中没有 svn 配置。
我推送的存储库与我推送后从 github 克隆的存储库之间的差异是:

在此处输入图片说明

我推送的那个(带有 svn 信息的 svn 克隆)在右边 - 来自 github 的克隆在左边
我应该分享哪些(文件夹/文件(或配置部分))让人们设置 git-svn 作为我有 ?从某种意义上说,他们克隆然后复制粘贴这些文件(并可能运行 git svn rebase),并且它们具有与我相同的设置。我也将 svn repo 的所有分支和标签克隆为远程分支,我也想分享这些。理想情况下,即使在我(我们)开始在 git 和 svn repo 之间推送/提交之后,这些文件也应该仍然有效

git git-svn

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

无法将信号连接到另一个类的插槽

我有2节课.A级和B级.我发出A级信号,我希望B接收.

我是这样做的

在监听器文件中

Header File:
  Class Listener:public DDSDataReaderListener
  {
     //Some code
    public:
       A m_objectSendData;
  }
Run Code Online (Sandbox Code Playgroud)

实施档案:

  void Listener::ondataavailable(DDSDataReader *reader)
 {
  m_objSendData.GetDDSData();
 }
Run Code Online (Sandbox Code Playgroud)

在A班

头文件:

Class A:public QObject
{
  Q_OBJECT
  public:
    void GetDDSData();
  signals:
    void Signal_Data();
}
Run Code Online (Sandbox Code Playgroud)

.cpp文件

 A::A(QWidget *parent):QObject(parent)
{
}

void A::GetDDSData()
 {
   emit Signal_Data();
 }   
Run Code Online (Sandbox Code Playgroud)

在B班

Header File:

  Class B:public QObject
  {
    Q_Object
    public:
    A objGetData;

    public slots:
    void getData();
  }

Implementation File:

 B::B(QWidget *parent):QObject(parent)
{
   //Some part of code

  connect(&objGetData,SIGNAL(Signal_Data()),this,SLOT(getData());
 }

 void B::getData()
 {
    //Watever is to …
Run Code Online (Sandbox Code Playgroud)

qt signals slot

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

没有为name定义标记:viewAction

我刚刚将JSF 2.2.2合并到我现有的项目中,我想使用f:viewAction但是我收到以下错误.

<f:viewAction> Tag Library supports namespace: http://java.sun.com/jsf/core, \
but no tag was defined for name: viewAction
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

<f:metadata>
    <f:viewAction action="#{testBean.doIT}"/>
</f:metadata>
Run Code Online (Sandbox Code Playgroud)

这是我的控制器:

@Named("testBean")
@Scope(ScopeType.VIEW)
public class TestBeanimplements Serializable {
public void doIT(){
  System.out.println("Test Working !!!!!!!!");
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我对JSF的maven配置:

<dependency>
    <groupId>com.sun.faces</groupId>
    <artifactId>jsf-api</artifactId>
    <version>2.2.2</version>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>com.sun.faces</groupId>
    <artifactId>jsf-impl</artifactId>
    <version>2.2.2</version>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.0.1</version>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>javax.servlet.jsp</groupId>
    <artifactId>javax.servlet.jsp-api</artifactId>
    <version>2.2.1</version>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>javax.el</groupId>
    <artifactId>javax.el-api</artifactId>
    <version>2.2.1</version>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>javax.servlet.jsp.jstl</groupId>
    <artifactId>jstl-api</artifactId>
    <version>1.2</version>
    <scope>provided</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)

谁能请我解释为什么我收到这个错误?

jsf-2

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

java泛型 - 强制转换为List <SomeType>在未转换为SomeType时发出未经检查的强制转换警告

为什么这个 :

public <T> List<byte[]> getData(T data) {
    Location loc = (Location) data;
    // ...
}
Run Code Online (Sandbox Code Playgroud)

在此期间不会生成任何警告:

public <T> List<byte[]> getData(T data) {
    List<ScanResult> scanRes = (List<ScanResult>) data;
    // ...
}
Run Code Online (Sandbox Code Playgroud)

生成Type safety: Unchecked cast from T to List<ScanResult>

我怎样才能安抚警告?
作为一种设计是这种方法声明一个气味?

public <T> List<byte[]> getData(T data)
Run Code Online (Sandbox Code Playgroud)

是一个在不同类中使用不同数据类型实现的接口方法 - 所有实现的第一行都是这样的转换

java generics casting type-safety code-design

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

如何使用JSF阻止h:inputText上的负数

我使用jsf来构建表单,我有这种输入文本:

<div class="profile-info-row">
    <div class="profile-info-name">Promoção:</div>
    <div class="profile-info-value">
        <span class="input-icon input-icon-right">
            <h:inputText id="promocao" class="input-medium"
                value="#{itemController.itemPreco.promocao}"
                converterMessage="Valor inválido. (Ex.: 0.00)">
                <f:convertNumber locale="pt"/>
                <f:ajax event="change" render="promocaoMensagem"/>
            </h:inputText>
        </span>
        <div class="help-inline mensagemErro">
            <h:message for="promocao" id="promocaoMensagem"/>
        </div>
    </div> 
</div>
Run Code Online (Sandbox Code Playgroud)

并且我必须阻止负数并向用户发送一条消息,内联该号码被禁止,当用户在输入上输入无效数字时如何工作..

有人知道我该怎么做吗?

validation message negative-number jsf-2

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

Bzr快速出口返回bzr:破管

我需要将我的bzr repo导出到git.为此,我正在尝试使用bzr fast-export --git-branch=mybranch --plain | git fast-import --force.bzr开始运行但停止并返回错误:

15:11:58 Calculating the revisions to include ... 
15:11:58 Starting export of 8961 revisions ... 
15:12:17 1000/8961 commits exported at 3155/minute  
15:12:30 2000/8961 commits exported at 3718/minute  
15:13:12 3000/8961 commits exported at 2421/minute  
fatal: Path data/sql/patch-02-27.sql not in branch 
fast-import: dumping crash report to .git/fast_import_crash_4632
bzr: broken pipe
Run Code Online (Sandbox Code Playgroud)

谁来帮帮我!谢谢!

git bazaar git-fast-import

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

从集市转换为git并同步它们的正确方法

我在集市上有一个开发库,我想将其转换为git并保持同步。我需要这样做,因为我将与不认识集市的人共享我的代码。

首先,我需要将集市仓库转换为git。我到处搜索,发现博客提到了从集市转换为git的简单步骤。但是当我尝试运行bzr fast-export它时,它说没有这样的命令。

我尝试通过安装bzr fast-export sudo apt-get install bzr-fastexport。看来我实际上必须安装fastimport。所以我尝试了:sudo apt-get install bzr-fastimport。现在,我也可以运行bzr fastexport。并且以下命令成功完成了:

bzr fast-export | git fast-import
Run Code Online (Sandbox Code Playgroud)

现在我在git中有相同的仓库。但是如何保持同步?谷歌搜索后,我发现我必须使用git-bzr-ng,但是在github仓库上没有说明。任何想法如何?或其他任何选择?

git bazaar git-fast-import

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