使用com.google.android.maps API,我有一个MapActivity它使用ItemizedOverlay放置多个(最多约1000)上的图标MapView.当LocationListener检测到设备移动了一定距离(目前为5米,但仅用于测试)时,我想刷新(或者只是添加到列表中)图标.
我已经添加了setLastFocusedIndex(-1)和populate(),但我的ItemizedOverlay仍然会崩溃. 我认为当我向列表中添加更多项目时会崩溃,但有时即使我不移动手机也会崩溃.它在第一次更新时崩溃了.我无法从LogCat中确切地知道是什么触发了错误.
我的MapActivity基于各种教程:
编辑:调整代码来批量更新项目,但它仍然崩溃
public class NearbyActivity extends MapActivity implements VenueCatalogListener {
private final String TAG = this.getClass().getSimpleName();
List<Overlay> mapOverlays;
HelloItemizedOverlay itemizedOverlay;
private MapController mapController;
private MapView mapView;
private LocationManager locationManager;
private int latE6;
private int lonE6;
private Location current_location;
private VenuesFromServer venues_from_server;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
venues_from_server = new VenuesFromServer(this);
setupViews();
}
private void setupViews() {
setContentView(R.layout.nearby_view);
RelativeLayout linearLayout …Run Code Online (Sandbox Code Playgroud) 我有一个作为cron作业运行的PHP脚本.该脚本使用DB来查看它是否有任何操作,并确保其兄弟尚未运行.
我想将PHP脚本作为带有upstart的守护进程运行.
我已将我的/etc/init/super-mailer.conf文件设置为:
description "super mailer"
author "Rob Nugen"
start on startup
stop on shutdown
respawn
exec sudo -u www-data php -f /var/www/super-mailer/scripts/mailer.php
Run Code Online (Sandbox Code Playgroud)
我执行sudo start super-mailer并运行一次.
但它不会再次运行.为什么不?
我也试过更换exec sudo线
script
sudo -u www-data php -f /var/www/clubberia-mailer/scripts/mailer.php
end script
Run Code Online (Sandbox Code Playgroud)
我是否需要将PHP脚本更改为循环?如何告诉upstart继续启动脚本?
res/drawable-en-rUS
res/values-fr-rCA
Run Code Online (Sandbox Code Playgroud)
-r指定使用该语言的地区(国家)。
什么时候还指定区域不同?我的客户要求我们支持英语,中文以及三(3)个日语变体。(*)
我使用自定义的Application类设置语言环境,并编写如下代码:
locale = new Locale(lang, country);
Locale.setDefault(locale);
config.locale = locale;
mContext.getResources().updateConfiguration(config,mContext.getResources().getDisplayMetrics());
Run Code Online (Sandbox Code Playgroud)
并正在使用这样命名的资源目录:
/res/drawable-en
/res/drawable-cx
/res/drawable-ja
/res/drawable-ja-rHI
/res/drawable-ja-rFU
Run Code Online (Sandbox Code Playgroud)
虽然这有效 ; 最下面的两个条目是黑客。我实际上以虚构的国家/地区名称作为区域,例如
/res/drawable-ja-rJP-vHI
/res/drawable-ja-rJP-vFU
Run Code Online (Sandbox Code Playgroud)
指定日本境内的变体。
还有另一个Locale()构造函数,即
Locale(String language, String country, String variant);
如果我用这个
locale = new Locale("ja", "JP", "hi");
如何指定资源目录,包括语言,区域和变体?
我在提供替代应用程序资源中找到的最好的资源没有显示如何做到这一点。
(*)他们请求了这些日语变体:
我正在尝试实现一个,基于本教程从a SurfaceView调用它的onDraw()方法.在我开始运行以下代码后,我的应用程序正在提供ANR.Thread
我尝试过实现Runnable,而不是扩展Thread但它仍然给出了ANR.
据我所知,当ANR发生时,应用程序上没有其他任何东西在运行.(ANR仅在我添加此代码时才开始发生:)
package com.thunderrabbit.run;
import android.graphics.Canvas;
import android.view.SurfaceHolder;
public class MainThread extends Thread {
private final String TAG = this.getClass().getSimpleName();
// desired fps
private final static int MAX_FPS = 50;
// maximum number of frames to be skipped
private final static int MAX_FRAME_SKIPS = 5;
// the frame period
private final static int FRAME_PERIOD = 1000 / MAX_FPS;
private SurfaceHolder surfaceHolder;
private PageGLSurfaceView gamePanel; …Run Code Online (Sandbox Code Playgroud) 编辑2a:随意跳到底部以获得简洁的问题.
我可以通过xml绘制SurfaceView.就我而言,我正在创建一个电子书,它将在SurfaceViews上为本书的每个页面运行不同的动画.
我有一个.xml有FrameLayout调用的布局@+id/animation_layout.
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<fi.harism.curl.CurlView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/curl"
>
</fi.harism.curl.CurlView>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/animation_layout"
/>
<include layout="@layout/narration"
/>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
根据正在显示的书的哪个页面,我想在我的一组类中添加其中一个类的不同实例SurfaceView.
Page01SurfaceView extends PageAniSurfaceView {
//
// code here includes onDraw() definition
//
}
Page02SurfaceView extends PageAniSurfaceView {
//
// code here includes onDraw() definition
//
}
Run Code Online (Sandbox Code Playgroud)
PageAniSurfaceView基本上在实例化时创建一个Thread,并在创建View时启动该线程.
public class PageAniSurfaceView extends SurfaceView implements SurfaceHolder.Callback {
private final String TAG = this.getClass().getSimpleName();
private …Run Code Online (Sandbox Code Playgroud) 在下图中,黄色方块表示在我的整体布局中的RelativeLayout.
顶行"状态消息"是一个ViewFlipper,它响应用户可以按下的ToggleButtons(A,B).按钮C,D和E执行重新加载整个视图的其他内容.我们的客户要求按钮A,B,C,D和E按照下面的方式排列.(垂直对齐不如水平对齐重要.)
编辑说A,B,C,D和E是大约20x20倾角的图像; 它们在约300dip的宽度内对齐.我希望按钮保持其纵横比.

我创建了一个LinearLayout扩展,它扩展了按钮A和B(来自xml文件),然后是另一个LinearLayout,它在另一个xml文件中膨胀了按钮C,D和E.
按钮A和B(实际上是ToggleButtons):
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:baselineAligned="true"
>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
>
<ToggleButton
android:id="@+id/A"
android:textOn=""
android:textOff=""
android:background="@layout/A"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="60dp"
android:layout_marginRight="30dp"
/>
<ToggleButton
android:id="@+id/B"
android:textOn=""
android:textOff=""
android:background="@layout/B"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp"
/>
</LinearLayout>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
按钮C,D,E xml文件:
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:baselineAligned="true"
>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
>
<ImageView
android:id="@+id/C"
android:src="@drawable/C"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp"
/>
<ImageView
android:id="@+id/D"
android:src="@drawable/D"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp"
/>
<ImageView
android:id="@+id/E"
android:src="@drawable/E"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp"
/>
</LinearLayout>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
我的代码基本上可以工作,但是我必须利用边缘来使事情正确排列(他们还没有).我想知道是否有一些更清晰的中心对齐按钮组"A B"和"CD E"的方式
ps:精明的读者会注意到我正在扩展LinearLayout,但是却在膨胀RelativeLayouts.(我不知道为什么它甚至可以在所有的工作,但)当我试图延长的RelativeLayout而是"唯E"布局甚至没有出现在我的设备上.我不知道它去了哪里.
我有一个Activity用途
getWindow().getDecorView().getWindowVisibleDisplayFrame(rectangle);
Run Code Online (Sandbox Code Playgroud)
确定可用的屏幕空间并决定放置图像的位置.
单击硬件"返回"按钮离开后返回活动Activity,矩形值为
(0,0,800,480)
Run Code Online (Sandbox Code Playgroud)
但是,在我点击硬件"home"按钮离开后返回Activity Activity,矩形值为
(0,38,800,480)
Run Code Online (Sandbox Code Playgroud)
它会抛出显示和图像放置.
如何确保在呼叫时获得一致的值
getWindow().getDecorView().getWindowVisibleDisplayFrame(rectangle);
Run Code Online (Sandbox Code Playgroud)
无论我怎么离开应用程序?
更新:感谢@Reno帮助测试; 它似乎依赖于Android版本而不是设备.
我正在使用Lawnchair使用我的Web客户端(Firefox 13.0)的"dom适配器"来存储持久数据,并且达到了存储配额.Console.log说
Persistent storage maximum size reached
Run Code Online (Sandbox Code Playgroud)
很公平; 我将用这个来核对它:
<script type="text/javascript" charset="utf-8">
Lawnchair(function() {
this.nuke();
console.log("nuked");
});
</script>
Run Code Online (Sandbox Code Playgroud)
在我达到存储配额之前,上面的代码可以清除持久存储中的所有内容.但现在它不起作用.页面显示正常,但控制台日志不显示任何内容.我希望它像以前一样说"nuked".
以下代码显示了我的所有持久数据(在尝试使用上面的代码进行nuke()之后).
<script type="text/javascript" charset="utf-8">
Lawnchair(function() {
this.keys(function(values) {
values.forEach(console.log)
})
});
</script>
Run Code Online (Sandbox Code Playgroud)
如何使Lawnchair.nuke()在达到存储限制后工作?
我有一个force用于显示节点和链接的D3应用程序.在我的电脑上,节点响应触摸,但在我的iPhone上,它们没有.
我的代码是不是开源的,但在研究,我发现(没有?)这个例子 也像它在我的电脑上不上我的iPhone上运行:
http://mbostock.github.io/d3/talk/20111116/force-collapsible.html
在电话上,我可以拖动节点; 我可以放大图表..但是如果我点击浅蓝色圆圈,它们就不会像我们在PC上那样变成大蓝圈.
使用Chrome设备模式,我测试了几种不同的模拟设备.在移动设备中,只有诺基亚设备有效.
如何让d3节点响应移动设备上的触摸?
我正在有声读物中播放音频(旁白).音频文件采用.ogg格式,每个长度介于10到15秒之间.
编辑添加:我使用的是Android 2.2,API 8,我在我的Manifest中有这个:
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
Run Code Online (Sandbox Code Playgroud)
我有setVolumeControlStream(AudioManager.STREAM_MUSIC); 在我的onCreate()方法中.
我的声音通过类似于此的代码播放:
mp = MediaPlayer.create(mContext, resource);
mp.setOnCompletionListener(this);
mp.seekTo(0);
mp.setLooping(looping);
if(isSoundEnabled())
{
mp.setVolume(1, 1);
}
else
{
// I still need sounds to call their onComplete listeners to drive action
mp.setVolume(0,0);
}
nowPlaying = true;
mp.start();
Run Code Online (Sandbox Code Playgroud)
但是,尽管有更多的保证(33并且计数!),但是只需要setVolumeControlStream(AudioManager.STREAM_MUSIC); 在onCreate()中,当我按下设备上的音量键(Motorola Xoom)时,我的声音音量不会改变.
为了验证我的音量键正在做什么,我覆盖了onKeyDown:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
boolean result = true;
if (keyCode == KeyEvent.KEYCODE_VOLUME_UP)
{
DebugLog.d(TAG, "volume up");
}
else if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN)
{ …Run Code Online (Sandbox Code Playgroud) android ×7
android-maps ×1
d3.js ×1
javascript ×1
lawnchair ×1
localization ×1
media-player ×1
mobile ×1
php ×1
surfaceview ×1
ubuntu ×1
upstart ×1
volume ×1