小编Ben*_*alb的帖子

检查Android上的服务是否正在运行?

我想检查服务是否正在运行l写了这段代码

public class startServiceOrNo {
public static void startServiceIfItsNotRuning(Class<?> class1, Context context) {
    ActivityManager manager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
    for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
        if (class1.getName().equals(service.service.getClassName())) {
            Lg.d("servisstart SERVICE ALREADY START" + class1.getName());
            return;
        }
    }
    Lg.d("servisstart SSERVICE NEW SERVIS " + class1.getName());
    context.startService(new Intent(context, class1));
}
Run Code Online (Sandbox Code Playgroud)

并使用它startServiceOrNo.startServiceIfItsNotRuning(OfflineChopsMonitor.class,this)

如果我检查来自一个类的服务它的工作,但如果我检查来自不同类的相同服务,它的检查不起作用

android android-service

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

内部存储的安全性如何?

我需要的:

对于Android:我需要永久保存数据,但也能够编辑(显然读取)它.用户不应访问此数据 - 它可以包含高分的内容,用户不得编辑.

我的问题

我会(并且已经)使用过Internal Storage,但我不确定它实际上有多安全.这里说:

您可以将文件直接保存在设备的内部存储中.默认情况下,保存到内部存储的文件对应用程序是私有的,而其他应用程序无法访问它们(用户也无法访问).当用户卸载您的应用程序时,将删除这些文件.

这基本上就是我需要的东西 - 但它真的安全吗?是否可以通过root设备访问(可能只读取?)?(或者其他任何方式?)

SQLite数据库或共享内存怎么样?它们更适合保存(少量)数据吗?

另外:通常建议在内部以不同的方式处理"秘密"数据吗?(比如不将它(内部)保存为Integer/String但加密某种类型)

java android

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

Generic ObjectPool - 如何返回泛型类?

我正在尝试开发一个ObjectPool,它可以与任何Object一起使用,而不会改变Pool和Object的来源 - 但我找不到任何方法来编写get() -function("Maincode"获取一些Object来自池)因为存在类型不匹配(无法从Object转换为TestObject)

这是我的代码到目前为止:

ObjectPool的:

public Object get() {
        int first = availableObjects.get(0);
        availableObjects.remove(0);
        return objects.get(first);
    }
Run Code Online (Sandbox Code Playgroud)

对象(ArrayList)中,池中有所有对象,availableObjects 只包含所有可用对象的列表.我基本上只是返回第一个可用对象并将其标记为不可用.

Maincode:

    TestObject test = objectPoolS.get();
Run Code Online (Sandbox Code Playgroud)


如何使get()- Method更通用/特定,以便每次使用不同的类而不在主代码上解析时,它都可以在不调整池的情况下工作?


更新:

使用该池的更通用版本,get()方法将如何正确显示?
(任何其他反馈非常感谢!)
更新:工作(固定)下面的MainCode版本

更新2:
我刚刚意识到它不能像这样工作,我需要在池中创建新的对象 - 如果没有为每种对象调整池,这似乎很难做到.
那么我可以以某种方式删除池中所有对象之间的引用吗?(因为我使用baseObject来初始化所有对象,实际上我只有5个对1个对象的引用)
或者有更好的方法来管理它吗?(不强制用户在其代码中创建对象)

完整代码到目前为止:

ObjectPool的

public class ObjectPoolS<T> {

    int numberOfObjects;
    boolean autoExtending;

    T baseObject;
    ArrayList<T> objects;
    ArrayList<Integer> availableObjects;


    public  ObjectPoolS(T baseObject, int capacity, boolean allowAutoExtending) {
        this.numberOfObjects = capacity;
        this.baseObject = baseObject;
        this.autoExtending = allowAutoExtending;

        objects = …
Run Code Online (Sandbox Code Playgroud)

java generics object-pooling

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

缩小时OSMDroid崩溃

我在我的应用程序中添加了一个OSMDroid地图,它工作正常,但如果我缩小,它会崩溃.

我在用户当前位置加载Map时添加一个Item,并在加载地图后在AsyncTask中再加载10个.


更新:工作解决方案

在我下面的旧代码中,我在用户位置向地图添加了一个"base"-Item,并ItemizedItemOverlay为地图创建了一个.然后我加载了更多OverlayItems并将它们添加到列表中,但它们没有出现在地图上.

现在我创建了ItemizedItemOverlayAsyncTask完成加载所有项目之后,现在项目全部可见,OnItemSingleTapUp按预期工作,地图上的Double-Tap也可以,并且不再有崩溃.我仍然不知道是什么导致了崩溃,但它的工作原理是这样的.


可能的问题:
OverlayItems的列表初始化为零对象(显然),但在我添加一个OverlayItem之后,它包含1个OverlayItem + 11个更多的null-对象(或null-Refernces?null-Items?正确的术语是什么? ) 编辑: didnt引起的问题,还是陌生的.

编辑:似乎我只是在添加更多项目时遇到崩溃.

这是我的完整代码和Logcat:

mResourceProxy = new DefaultResourceProxyImpl(getApplicationContext());

mapView.setTileSource(TileSourceFactory.MAPNIK);
mapView.setBuiltInZoomControls(true);
mapView.setMultiTouchControls(true);
mapController = this.mapView.getController();
mapController.setZoom(25);
GeoPoint center = new GeoPoint(DataManager.glat, DataManager.glon);
mapController.setCenter(center);
mLocMgr = (LocationManager) getSystemService(LOCATION_SERVICE);

mLocMgr.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 100,
        this);

items = new ArrayList<OverlayItem>(); // items now null
items.add(new OverlayItem("Here", "SampleDescription", center));
// items now contains 1 OverlayItem and 11 null-items

this.mLocationOverlay = new ItemizedIconOverlay<OverlayItem>(items,
new ItemizedIconOverlay.OnItemGestureListener<OverlayItem>() {
            @Override
            public boolean onItemSingleTapUp(final int …
Run Code Online (Sandbox Code Playgroud)

android osmdroid

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

OSMDroid-自定义标记在我缩小时移动

我已经实现了OSMDroid并添加了一个自定义标记,如下所示:

    mResourceProxy = new DefaultResourceProxyImpl(getApplicationContext());
    mapView.setTileSource(TileSourceFactory.MAPNIK);
    mapView.setBuiltInZoomControls(true);
    mapView.setMultiTouchControls(true);
    mapController = this.mapView.getController();
    mapController.setZoom(25);
    GeoPoint center = new GeoPoint(DataManager.glat, DataManager.glon);
    mapController.setCenter(center);
    OverlayItem newItem = new OverlayItem("Here", "SampleDescription", center);
    Drawable newMarker = this.getResources().getDrawable(R.drawable.marker);
    newItem.setMarker(newMarker);
Run Code Online (Sandbox Code Playgroud)

该标记应位于用户的位置,默认情况下,地图应居中。只要我不缩放,效果就很好:

原始变焦(25)

但是当我缩小时,标记会移动:
缩小一点

距离随缩放级别增加:
进一步缩小

知道这是由什么引起的吗?自定义标记是否有任何限制/准则?

注意:使用默认标记时不会发生这种情况。

android osmdroid

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

删除对话框创建的阴影

你如何从android中的对话框中删除阴影?

谢谢

彼得,

java android dialog

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