小编Gad*_*ady的帖子

Android - 启动时启动服务

从我在Stack Exchange和其他地方看到的所有东西,我已经正确设置了所有东西,以便在Android OS启动时启动IntentService.不幸的是它没有启动,我没有收到任何错误.也许专家可以提供帮助......

表现:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.phx.batterylogger"
  android:versionCode="1"
  android:versionName="1.0"
  android:installLocation="internalOnly">

<uses-sdk android:minSdkVersion="8" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.BATTERY_STATS" />

<application android:icon="@drawable/icon" android:label="@string/app_name">
    <service android:name=".BatteryLogger"/>
    <receiver android:name=".StartupIntentReceiver">  
        <intent-filter>  
            <action android:name="android.intent.action.BOOT_COMPLETED" />  
        </intent-filter>  
    </receiver>
</application>

</manifest>
Run Code Online (Sandbox Code Playgroud)

BroadcastReceiver for Startup:

package com.phx.batterylogger;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;

public class StartupIntentReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        Intent serviceIntent = new Intent(context, BatteryLogger.class);
        context.startService(serviceIntent);
    }
}
Run Code Online (Sandbox Code Playgroud)

更新:我尝试了下面的所有建议,并且我将日志记录添加Log.v("BatteryLogger", "Got to onReceive, …

java android broadcastreceiver intentservice

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

在执行syncdb时,获取"DatabaseOperations"对象没有属性"geo_db_type"错误

我正在尝试heroku run python manage.py syncdb在Heroku上运行我的GeoDjango应用程序,但是我收到以下错误:

AttributeError:'DatabaseOperations'对象没有属性'geo_db_type'

所有 我的 研究已经取得了相同的解决方案:确保使用django.contrib.gis.db.backends.postgis的数据库引擎.有趣的是,我已经这样做了(我也有django.contrib.gisINSTALLED_APPS):

settings.py

DATABASES = {
  'default': {
    'ENGINE': 'django.contrib.gis.db.backends.postgis',
    'NAME': '...',
    'HOST': '...',
    'PORT': ...,
    'USER': '...',
    'PASSWORD': '...'
  }
}

INSTALLED_APPS = (
    ...,
    'django.contrib.gis',
)
Run Code Online (Sandbox Code Playgroud)

还有其他我想念的东西吗?非常感谢任何帮助,下面是完整的错误跟踪供参考:

Running `python manage.py syncdb` attached to terminal... up, run.1
Creating tables ...
Creating table auth_permission
Creating table auth_group_permissions
Creating table auth_group
Creating table auth_user_user_permissions
Creating table auth_user_groups
Creating table auth_user
Creating table …
Run Code Online (Sandbox Code Playgroud)

django heroku geodjango

56
推荐指数
8
解决办法
3万
查看次数

如何从Oracle函数返回RefCursor?

我正在尝试执行用户定义的Oracle函数,该函数使用ODP.NET返回RefCursor.这是功能:

CREATE OR REPLACE FUNCTION PKG.FUNC_TEST (ID IN TABLE.ID%type)
   RETURN SYS_REFCURSOR
AS
   REF_TEST   SYS_REFCURSOR;
BEGIN
   OPEN REF_TEST FOR
      SELECT   *
        FROM   TABLE;
   RETURN REF_TEST;
END;
/
Run Code Online (Sandbox Code Playgroud)

我可以在Toad中调用此函数(从dual中选择func_test(7))并返回CURSOR.但是我需要使用C#和ODP.NET来获取光标以填充DataSet,但我不断得到NullReferenceException - "对象引用未设置为对象的实例".以下是我的意见:

OracleConnection oracleCon = new OracleConnection(ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString);
OracleCommand sqlCom = new OracleCommand("select func_test(7) from dual", oracleCon);
sqlCom.Parameters.Add("REF_TEST", OracleDbType.RefCursor, ParameterDirection.ReturnValue);
OracleDataAdapter dataAdapter = new OracleDataAdapter();
dataAdapter.SelectCommand = sqlCom;

DataSet dataSet = new DataSet();
dataAdapter.Fill(dataSet);  //FAILS HERE with NullReferenceException
Run Code Online (Sandbox Code Playgroud)

我能够在使用存储过程和ODP.NET时找到大量信息和示例,但对于从函数返回RefCursors并没有那么多.

编辑: 我不想显式地将输入参数添加到OracleCommand对象(即sqlCom.Parameters.Add("id", OracleDbType.Int32,ParameterDirection.Input).Value = 7;),因为这使得很难将其作为通用RESTful Web服务实现,但我将其作为我的最后手段,但将使用存储过程.

任何帮助深表感谢!

oracle function odp.net sys-refcursor

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

用Python替换空白字符串中的奇怪单引号(')

我正在尝试用来string.replace('’','')替换可怕的怪异的单引号字符:'(又名\ xe2又名#8217).但是,当我运行该行代码时,我收到此错误:

SyntaxError: Non-ASCII character '\xe2' in file
Run Code Online (Sandbox Code Playgroud)

编辑:我尝试替换远程获取的CSV文件中的字符时出现此错误.

# encoding: utf-8

import urllib2

# read raw CSV data from URL
url = urllib2.urlopen('http://www.aaphoenix.org/meetings/aa_meetings.csv')
raw = url.read()

# replace bad characters
raw = raw.replace('’', "")

print(raw)
Run Code Online (Sandbox Code Playgroud)

即使在执行上述代码之后,打印结果中仍然存在不需要的字符.我也尝试了以下答案中的建议.很确定这是一个编码问题,但我只是不知道如何解决它,所以当然任何帮助都非常感激.

python

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

使用Python删除或删除CSV文件中的最后一列

我有一个包含5列的CSV文件.使用Python,我如何删除最后一列(示例中的header5)?有一种简单的方法我缺少,或者我是否必须遍历CSV中的所有行并从最后一列中删除每个值(这可能仍然留给我不想要的前面的逗号)?

我没有在CSV模块或互联网上的其他地方看到与此相关的任何内容,因此非常感谢任何帮助.

header1,header2,header3,header4,header5
value1,value2,value3,value4,value5
value1,value2,value3,value4,value5
Run Code Online (Sandbox Code Playgroud)

python csv

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

活动开始于startActivityForResult()没有返回到调用Activity

我有3个活动- ,,和Ç.

简而言之,活动A启动活动B,然后A也启动活动C并期望来自C的结果,但永远不会得到它.

这是应用程序工作流程:

  1. 活动A在应用启动时启动,并在onCreate中启动活动B(不是结果,只是startActivity()).

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        startActivity(new Intent(getApplicationContext(), ActivityB.class));
    }
    
    Run Code Online (Sandbox Code Playgroud)
  2. 然后,Activity A也会在代码中启动Activity C,这次使用startActivityForResult()获得结果,而Activity A也有onActivityResult.

    Intent intent = new Intent(getApplicationContext(), ActivityC.class);
    startActivityForResult(intent, 0);
    
    Run Code Online (Sandbox Code Playgroud)

    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
       ...
    }
    
    Run Code Online (Sandbox Code Playgroud)
  3. Activity C使用setResult()和finish()返回一些数据,这些数据应该返回到Activity A,因为Activity A调用了startActivityForResult().

    Intent intent = new Intent();
    intent.putExtra("encryption", encryption);
    setResult(56, intent);
    finish();
    
    Run Code Online (Sandbox Code Playgroud)

但是工作流程在步骤3中保持沉默 - 活动A的onActivityResult从未被调用(也不是B的),即使活动A是从结果开始的C.不确定活动B是否妨碍了A和C的沟通,或者问题是什么.任何帮助深表感谢.

android android-activity

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

file.exists()在文件存在时返回false

在我正在处理的Android应用程序中,用户应该能够在SD卡上创建一个新的CSV文件,使用他们在EditText中输入的文本命名.

问题是在使用目录和文件名实例化文件后,file.exists()返回false,即使该文件确实存在于该位置.我使用Android文件浏览器和Windows资源管理器浏览了SD卡,文件确实存在.

这是检查文件是否已经存在的正确方法,如果是,我错过了什么,以便它存在时返回true?

String csvname = edittext.getText().toString() + ".csv";
File sdCard = Environment.getExternalStorageDirectory(); //path returns "/mnt/sdcard"
File dir = new File (sdCard.getAbsolutePath() + "/Android/data/" + getPackageName() + "/files/"); // path returns "/mnt/sdcard/Android/data/com.phx.license/files"
dir.mkdirs();
File file = new File(dir, csvname); //path returns "/mnt/sdcard/Android/data/com.phx.license/files/Test.csv"

if(!file.exists()) //WHY DOES IT SAY IT DOESN'T EXIST WHEN IT DOES?
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

java file-io android file

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

使用Google Maps API推动时间多边形

我正在寻找一种纯粹的(或尽可能纯的)Google Maps JavaScript API V3解决方案,以便为我的Google地图应用添加驱动时多边形功能.

基本上工作流程是用户单击地图上的标记或点,并在标记/点周围生成多边形,指示您可以在任何方向上在5分钟内驾驶的区域.

我不确定是否有可能将其作为纯粹的Google Maps API解决方案来实现,因为它需要使用随机路由向Directions Service发出太多电话,然后任何不在时间阈值范围内的电话都会被丢弃.不确定这是否可行或者最好的方法是什么.可能有必要为此使用一些后端处理,但我想首先排除所有其他选项,但欢迎后端解决方案的任何示例.

非常感谢任何帮助,建议或示例.以下是我遇到的一些示例,但它们要么不是纯Google Maps API解决方案,要么不使用驱动时间:

  1. Google Maps Utility Library示例 - 在您点击的点周围绘制1,2和3分钟的驱动时间多边形,但它使用Esri的示例地理处理服务来运行计算并生成多边形几何体,因此这对我来说不起作用要求.

  2. 30英里的方向 - 它是一个纯粹的Google Maps API解决方案,使用Directions API并绘制一个漂亮的多边形,它不需要将驱动时间计算在内,只需要距离点30英里即可.

  3. Mapnificent - 似乎是一个纯粹的Google Maps API解决方案,他们有一个API,但他们正在处理从公共交通数据中提取的公共交通时间,而不是交通时间.因此,当您增加时间时"打开"的区域表示您可以在指定时间内从公共交通点开始.我想要这个,但有驾驶时间而不是过境时间.

javascript google-maps google-maps-api-3

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

当ForeignKey null = True时,Django慢查询

我在我的Django模型中设置null=True了一个ForeignKey字段,现在当我查询该模型时,速度大约慢了10倍.(我正在使用select_related())

在更改之前和之后查看我的Postgres日志提供了原因的线索:

  • 设置之前null=True,生成的SQL是一个带有几个内连接的select语句.
  • 设置之后null=True,生成的SQL会遗漏其中一个连接,而是会出现数千个相同的select语句.

所以这是经典的n + 1查询问题,在解决这个问题之前,如何null=TrueForeignKey不进行性能命中的情况下设置字段?

sql django postgresql foreign-keys

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

Django DatabaseError - 没有这样的保存点

我的 Django 应用程序中有一个 Celery 任务调用的函数,它处理 CSV 文件中的每一行,并尝试使用模型将每一行中的信息插入到 PostgreSQL 数据库中,如下所示:

reader = csv.DictReader(csvfile, dialect=csv.get_dialect('excel'))
for row_number, row in enumerate(reader):
    try:
        ...
        customer, created = Customer.objects.get_or_create(
            first_name = row['First Name'],
            last_name = row['Last Name'],
            email = row['Email'],
            account_owner = account_owner
        )
        ...
    except Exception, e:
        message = "%s: %s\n" % (type(e).__name__, e)
        sys.stderr.write("%s\n" % message)
Run Code Online (Sandbox Code Playgroud)

Customer.objects.get_or_create在循环的第一次迭代中收到以下错误: DatabaseError: no such savepoint

然后我在DatabaseError: current transaction is aborted, commands ignored until end of transaction block此后的每次迭代中都得到了。

我已经成功地(使用 SQL 手动)将一条记录插入到该表中,该记录与脚本将提供的信息相同。我也尝试过使用保存点,但没有运气:

sid = transaction.savepoint() …
Run Code Online (Sandbox Code Playgroud)

python django postgresql celery

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

如何摆脱页面上的滚动条?

我知道答案很简单,但我有一个非常简单的HTML页面,有3个div - header,map_canvas和sidebar.我有一些CSS将所有这些放在需要的地方.但由于某种原因,我在浏览器窗口中获取滚动条,我不希望它们在那里,我只是希望页面很好地适应窗口的高度和宽度.任何帮助深表感谢.

我的页面由以下HTML组成:

<!doctype html>
<html>
    <head>
        <title>CSS Exercise</title>
        <link rel="stylesheet" href="css/style.css" />
        <script src="js/script.js"></script>
    </head>
    <body onload="initialize()">
        <div class="header"></div>
        <div id="map_canvas"></div>
        <div class="sidebar">
            <input id="lat" type="text" />
            <input id="lng" type="text" />
        </div>
    </body>
</html>?
Run Code Online (Sandbox Code Playgroud)

这个CSS:

body {
    height: 100%;
    width: 100%;
}

html {
    height: 100%;
}

.header {
    width: 100%;
}

#logo {
    display: block;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 8px;
}

.sidebar {
    float: right;
    width: 20%;
    height: 100%;
    text-align: center;
}

#map_canvas {
   float: left; …
Run Code Online (Sandbox Code Playgroud)

html css

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

如何使此SQL更新语句更有效?

我试图将计数,总和和平均值从一个表添加到另一个表,但我最终查询每个值的相同数据.我正在使用PostgreSQL.我正在向专家们讨论如何使这个更新语句更有效率.这里是:

update "table1" set 
"col1" = (SELECT COUNT(*) FROM "table2" WHERE "table2Id" = "table1"."table1Id"), 
"col2" = (SELECT AVG("someCol") FROM "table2" WHERE "table2Id" = "table1"."table1Id"),
"col3" = (SELECT SUM("someCol") FROM "table2" WHERE "table2Id" = "table1"."table1Id");
Run Code Online (Sandbox Code Playgroud)

我应该能够像这样运行一个子查询并访问更新的返回值,对吗?

SELECT COUNT(*), AVG("someCol"), SUM("someCol") FROM "table2" WHERE "table2Id" = "table1"."table1Id";
Run Code Online (Sandbox Code Playgroud)

任何帮助深表感谢.

sql postgresql aggregate-functions

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