Articles of java的

在GoogleCloudMessaging API中,如何处理注册ID的续订或到期?

问题是如何找出注册ID何时在GoogleCloudMessaging API中失效? 我已经在类似主题的几个问题上阅读了答案: GCM注册ID是否到期? 和谷歌Coud Mesaging(GCM)和registration_id到期,我怎么知道? 。 这些问题的问题在于C2DM或旧GCM API的答案是使用GCMRegistrar而不是GoogleCloudMessaging API。 前两种方法已经过折旧。 我会逐步打破我的困惑/疑问 : 1)在标题Enable GCM下 ,在第二点它说: Google may periodically refresh the registration ID, so you should design your Android application with the understanding that the com.google.android.c2dm.intent.REGISTRATION intent may be called multiple times. Your Android application needs to be able to respond accordingly. The registration ID […]

为现有类添加一个便捷方法(类强制转换exception)

Java / Android noob here(仍然)我希望你能提供帮助。 我试图添加一个小的便利方法来获得已经过去的时间而不是自EPOCH以来的时间。 所以我试着这样做: public class EasyLocation extends android.location.Location { … public long getElapsedTime() { return getTime() – System.currentTimeMillis(); } } 但是,当我尝试使用它时,如下面的代码将其转换为我的Location类。 我有一个类强制转换exception。 我已经阅读了它,我完全理解为什么它不起作用。 那不是问题。 问题是:它不是一个火车粉碎,但我希望有什么返回我的方法,以使我的代码的其余部分更清洁。 我无法find解决方法。 关于如何做到这一点的任何想法? lastNetworkLocation = (EasyLocation) locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER); 谢谢, 杰拉德。

在施放时铸造性能在不同的水平

让我们假设我们有三个(或更多)类 公共课A {} 公共等级B扩展A {} 公共类C扩展B实现G {} 假设每个类都有自己的20个(或更多)方法。 铸造到C与铸造到A对性能有更大的影响吗? Java编译如何在幕后工作? 在向下投射时,是否必须检查reflection存在的所有方法和字段? 编辑:类的大小(字段和方法的数量)是否会在投射时影响性能? 我对OpenJRE和Dalvik都感兴趣。 作为参考,我知道可以毫无问题地完成向上转换。

如何在IntelliJ Idea上设置admob?

听起来这个问题可能与以下内容重复: 如何使用IntelliJ IDEA正确配置AdMob? 但事实并非如此! (特别是因为这个问题来自2011年,谷歌进程发生了变化(看起来似乎))。 我正在关注此google-reference以进行正确设置。 首先,有“使用Android Studio”选项,我不知道那是什么。 然后,我去了下一个:“使用Eclipse或其他IDE ”,然后有一个注释,这是非常直接的。 我在IntelliJ Idea上选择了我的项目,按F4 (打开模块设置)并转到平台设置中的SDK,然后添加了他们要求的文件夹(extras \ google \ google_play_services)。 假设这是“添加Google广告库”的正确方法,我继续并将清单文件添加到他们要求的内容中。 当我编译应用程序时,我收到错误: D:\Computer Programming\IdeaProjects\Black Square\AndroidManifest.xml:8: error: Error: No resource found that matches the given name (at ‘value’ with value ‘@integer/google_play_services_version’). 所以,看起来,我没有正确导入它(从这部分开始,我不知道如何继续)。

Android:在调用函数之前实现1秒间隔计时器

我想在重置游戏之前暂停1秒(resetGame())。 按下按钮后。 bAnswer1文本等于ansewrArray [0]。 在newQuestionTimer()中设置1秒延迟后,App力会关闭。 import java.util.Timer; import java.util.TimerTask; Timer timer = new Timer(); bAnswer1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub if(bAnswer1.getText().toString().equals(answerArray[0])) { bAnswer1.setBackgroundColor(Color.GREEN); newQuestionTimer(); } else { bAnswer1.setBackgroundColor(Color.RED); guess++; } } }); public void newQuestionTimer() { timer.schedule(new TimerTask() { @Override public void run() { resetGame(); } }, […]

LibVlc android无法加载库

我试图运行libvlc的例子。我将vlc编译成android并将sdk库复制到项目中。 https://bitbucket.org/edwardcw/libvlc-android-sample 我发现了这个错误 1236-1236/com.compdigitec.libvlcandroidsample E/VLC/LibVLC﹕ Can’t load vlcjni library: java.lang.UnsatisfiedLinkError: Couldn’t load vlcjni from loader dalvik.system.PathClassLoader[DexPathList[[zip file “/data/app/com.compdigitec.libvlcandroidsample-1.apk”],nativeLibraryDirectories=[/data/app-lib/com.compdigitec.libvlcandroidsample-1, /system/lib]]]: findLibrary returned null 在这方面他们是问题 try { System.loadLibrary(“vlcjni”); } catch (UnsatisfiedLinkError ule) { Log.e(TAG, “Can’t load vlcjni library: ” + ule); /// FIXME Alert user System.exit(1); } 在libs / armeabi-v7a下我有这些文件 gdb.setup gbdserver libiomx-hc.so libiomx-gingerbread.so libiomx-ics.so libvlcjni.so 我认为.so文件没有加载。 […]

如何从RegionBootstrap AltBeacon方法获取可见信标

我正在使用此页面中的示例代码( http://altbeacon.github.io/android-beacon-library/samples.html )在背景部分的启动应用程序中,我有一个工作的应用程序。 即使在背景上,它也会检测到信标是否在范围内。 问题是我需要知道它是哪个信标(UUID,Major,Minor)然后将它与我的本地数据库匹配并在应用程序仍然在后台发出通知。 didEnterRegion(Region区域)函数只有一个matchesBeacon方法,我尝试过以下操作来识别哪些信标正在被查看,但它正在抛出一个NullPointerException: public class SightSeeing extends Activity implements BootstrapNotifier, RangeNotifier { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Region region = new Region(“sightRegion”, null, null, null); regionBootstrap = new RegionBootstrap(this, region); BeaconManager.getInstanceForApplication(this).getBeaconParsers().add( new BeaconParser(). setBeaconLayout(“m:2-3=0215,i:4-19,i:20-21,i:22-23,p:24-24”) ); BeaconManager.getInstanceForApplication(this).setRangeNotifier(this); } @Override public void didEnterRegion(Region region) { regionBootstrap.disable(); BeaconManager.getInstanceForApplication(this).setRangeNotifier(this); try { BeaconManager.getInstanceForApplication(this).startRangingBeaconsInRegion(region); } catch […]

Android – 使用Event创建自定义日历

我有一个显示特殊日子的应用程序。 我想将它们整合到日历中。 事件是静态的,它们不会改变,因此我不必经常更新日历。 我首先想到创建一个本地日历并添加事件,但新的Android版本(从2.3?)似乎不支持这个; 实现我将不得不创建一个日历提供程序。 我在github上看到了这个项目: https : //github.com/dschuermann/birthday-adapter 。 这很复杂; 它的主要用途是将联系人的生日添加到新日历中。 有很多代码,其中很多我认为我不需要。 我真的需要注册到Android的客户经理来集成日历提供商吗? 我只需要一个新的日历与我的活动…… 使用用户的默认日历并在那里添加所有事件会更容易吗? 我可以在描述中添加一些标识符,以便在用户不需要时删除事件。 任何提示,教程或进一步阅读都表示赞赏。 Metin Kale

RxJava重试重新订阅传播时

我在Android应用程序中使用Retrofit与RxJava进行通信,并且必须处理从似乎正常的HTTP响应(状态200代码)解析响应时出错。 我还使用retryWhen运算符实现了一种处理错误的方法,该运算符连接到用户的输入以决定是否重试。 这通过重新订阅原始Observable 。 我尝试的第一种方法是这样的: services.getSomething() .map(response -> { if (checkBadResponse(response)) { throw new RuntimeException(“Error on service”); } else { return parseResponse(response); } }).retryWhen(this::shouldRetry); 有了这个,服务不会再被调用。 看来retryWhen运算符无法重新订阅服务的Observable 。 最终工作的是实施另一个运营商,该运营商不发送onCompleted向前并使用lift ,如下所示: public class CheckResponseStatus implements Observable.Operator<ResponsePayload, ResponsePayload> { @Override public Subscriber<? super ResponsePayload> call(Subscriber<? super ResponsePayload> subscriber) { return new Subscriber<ResponsePayload>() { private boolean hasError = false; […]

在stackview中水平滑动

我在一个需要stackview的应用程序中。 但我必须实现水平滑动以在stackview项和UI外观之间切换,就像正常情况一样。 请帮我搞定。 我已经检查了这个链接 。 但在它中UI只是一个封面流程。 我想让UI看起来像stackview一样。