小编noa*_*ahd的帖子

Python Subprocess.Popen来自一个线程

我正在尝试使用子进程模块和线程内的Popen启动'rsync'.在我调用rsync之后,我还需要读取输出.我正在使用通信方法来读取输出.我不使用线程时代码运行正常.看来,当我使用一个线程时,它会挂在通信呼叫上.我注意到的另一件事是,当我设置shell = False时,在线程中运行时,我从通信中得不到任何回报.

python rsync multithreading subprocess

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

半透明主题的问题

我有一个有两个活动的应用程序.第一个显示一个按钮,打开第二个按钮.

这是第一个最明智的定义:

<activity
    android:name="com.example.buttonexample.MainActivity">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)

第二项活动:

<activity
    android:name="com.example.buttonexample.MainActivity2"
    android:label="@string/title_activity_main_activity2" android:theme="@android:style/Theme.Translucent">
</activity>
Run Code Online (Sandbox Code Playgroud)

以下是我如何启动第二个活动(通过OnClickListener获取第一个活动上的按钮):

public void startSecondActivityClick(View v) {
   Intent startActivity2 = new Intent(this, MainActivity2.class);
   startActivity(startActivity2);
}
Run Code Online (Sandbox Code Playgroud)

这工作正常,但是当我通过击中主页和应用程序的前景来后台应用程序.我注意到第一个活动是不断创造/摧毁自己.我通过在onDestory方法中添加一些代码来增加静态int来验证这一点:

private static int count = 0;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    count++;

}

protected void onDestroy() {
    super.onDestroy();
    Log.i("MainActivity", String.format("Destroyed, %d", count));
}
Run Code Online (Sandbox Code Playgroud)

我也注意到删除半透明主题似乎解决了这个问题.我的问题是有没有办法半透明或类似的东西,但也没有重新启动?而且,我很好奇为什么会发生这种情况.我正在使用Galaxy SIII上的4.0.1 ICS进行测试.

android android-theme

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

融合位置提供程序 - onLocationChanged停止被调用

在我们的应用程序中,我们使用融合位置提供程序(FLP)来跟踪位置.我们注意到,应用程序偶尔会进入一个状态,其中位置回调停止被调用.该应用程序主要用于两个平板电脑(nexus 7和LG G-pad 8.3).我们已经看到两个设备都出现了这个问题.通常,重置设备似乎可以缓解这个问题.我们相信我们遵循大多数使用FLP的最佳实践.但是,万一我们将这个示例代码放在一起,说明了我们如何使用FLP.

获取谷歌API客户端并致电连接:

m_googleApiClient = builder
                .addConnectionCallbacks(this)
                .addOnConnectionFailedListener(this)
                .addApi(LocationServices.API)
                .build();
m_googleApiClient.connect()
Run Code Online (Sandbox Code Playgroud)

连接后,我们开始侦听位置回调:

@Override
public void onConnected(Bundle bundle) {
    m_fusedLocationProviderApi.requestLocationUpdates(m_googleApiClient, m_locationRequest, this);
}
Run Code Online (Sandbox Code Playgroud)

位置请求如下所示:

    LocationRequest locationRequest = LocationRequest.create();
    locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
    locationRequest.setInterval(UPDATE_INTERVAL_IN_MILLISECONDS);
    locationRequest.setFastestInterval(FASTEST_UPDATE_INTERVAL_IN_MILLISECONDS);
Run Code Online (Sandbox Code Playgroud)

然后我们像这样实现回调:

    @Override
public void onLocationChanged(Location location) {
   // set location member var and record timestamp.
}
Run Code Online (Sandbox Code Playgroud)

当问题发生时,我们似乎没有得到任何错误回调.当我们检测到我们在很长一段时间内没有收到GPS时,我们也尝试在google api客户端上调用reset().我们还每2秒使用一个计时器监控位置可用性(使用getLocationAvailability).通常我们发现让用户重置其设备(开机,关机)可以解决问题.

我们的问题是:

  1. 还有其他人注意到FLP的这个问题吗?
  2. 除了让用户重置之外,还有更多可以解决问题的方法吗?删除添加位置更新会有帮助吗?
  3. 我们可以/应该收集更多信息来诊断问题吗?

gps android google-play-services location-services fusedlocationproviderapi

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

Python:在Windows或Linux上获取Mount Point

我需要一个函数来确定目录是否是驱动器的安装点.我发现这个代码已经适用于linux:

def getmount(path):
  path = os.path.abspath(path)
  while path != os.path.sep:
    if os.path.ismount(path):
      return path
    path = os.path.abspath(os.path.join(path, os.pardir))
  return path
Run Code Online (Sandbox Code Playgroud)

但我不确定如何在Windows上使用它.我可以假设挂载点是驱动器号(例如C :)吗?我相信可以在Windows上安装网络,所以我也希望能够检测到该安装.

python linux windows mount operating-system

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

zxing连续扫描 - iphone

我已将zxing库集成到我的应用程序中,但我的部分要求是能够不断扫描QR码.我已经通过解雇和重新呈现zxing小部件在某种程度上完成了这一点,但对我的客户来说似乎太慢了.是否有另一种方法可以重置窗口小部件以再次开始扫描?

iphone reset zxing

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