小编Mit*_*hun的帖子

方法与类型中的另一种方法具有相同的擦除

为什么将这两种方法放在同一个类中是不合法的?

class Test{
   void add(Set<Integer> ii){}
   void add(Set<String> ss){}
}
Run Code Online (Sandbox Code Playgroud)

我明白了 compilation error

方法add(Set)具有与Test类型中的另一种方法相同的擦除add(Set).

虽然我可以解决它,但我想知道为什么javac不喜欢这个.

我可以看到,在许多情况下,这两种方法的逻辑非常相似,可以用一个方法代替

public void add(Set<?> set){}
Run Code Online (Sandbox Code Playgroud)

方法,但情况并非总是如此.

如果你想要有两个constructors接受这些参数的话,这是非常烦人的,因为那时你不能只改变其中一个的名字constructors.

java generics

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

Android Maps API需要openGL es 2

Maps v2文档说明:

由于Google Maps Android API的第2版需要OpenGL ES版本2,因此您必须在AndroidManifest.xml中添加<uses-feature>元素作为元素的子 manifest元素:

<uses-feature   
   android:glEsVersion="0x00020000"  
   android:required="true"/>` 
Run Code Online (Sandbox Code Playgroud)

这会向外部服务通知该要求.特别是,它可以防止Google Play商店在不支持OpenGL ES版本2的设备上显示您的应用.

事实上,exception如果不在清单中,它会抛出一个.我不想在商店中过滤我的应用程序,我计划继续使用旧设备的旧地图,并且只有在运行时检测到所需的功能时才显示新地图,而不是在安装之前检测到.

那我该怎么做?是否必须是多个APKs不同的东西manifests

android google-maps-android-api-2

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

Gradle:添加依赖项的优点/缺点

添加依赖项有哪些优点/缺点build.gradle,而不是将它们添加为依赖库?

dependencies {
    compile project(':library')
    ...
    compile 'com.stackoverflow.android:some-great-library:1.0'
    ...
}
Run Code Online (Sandbox Code Playgroud)

在开发Android项目的过程中,我经常遇到一些很棒的库,它们都是我一直在寻找的精确解决方案.然而,正如我所需要的只是这些特定图书馆所提供的一小部分,我担心如果添加它们就像Gradle dependencies是一种过度杀伤力.


根据@ CommonsWare的评论,我有更具体的问题.

是否添加依赖项:

  1. 以明显的速度减慢编译时间?

  2. 增加release-apk和debug-apk的大小,增加依赖的大小?

dependencies android gradle android-library android-gradle-plugin

18
推荐指数
2
解决办法
1855
查看次数

Android Chrome浏览器在锁屏应用后无法解雇

我有一个锁屏应用程序,我的活动是用户点击解锁电源按钮时的第一个.我在lockscreen-app上有一个网站链接.禁用模式解锁后,将使用网站链接触发chrome.但是当我启用安全模式时,在用户输入他的模式后,Chrome应用程序会打开但网站不会被触发.

启用了模式锁定

MYLOCK-SCREENAPP>点击链接>进入默认锁屏,用户进入模式> Chrome启动但不启动网站.

模式锁定禁用

MYLOCK-SCREENAPP>点击链接> Chrome启动但不启动网站.

我在下面使用,启动网站.

url="http://(any url)"
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(url));
startActivity(i);
Run Code Online (Sandbox Code Playgroud)

很高兴能够解决这个问题.有专家吗?:)

android google-chrome android-intent keyguardlock

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

我可以通过编程方式自动覆盖Google SERP吗?

我的意思是,我可以在google serp页面上指定首选的SERP位置搜索选项.我想有办法让卷曲变成hapenns.

这是一些历史.我在项目中使用了SEOStats.很好.我有一篇关于使用未记录的谷歌搜索参数进行本地搜索的有趣文章UULE,并用它来获取本地搜索结果.并且它在一段时间内工作正常.然后我要用代理实现获得结果.就是这样.根据同一篇文章的评论中的建议,今天出现了问题.今年充满了惊喜.现在结果UULE由于某种原因有时使用代理忽略参数.它返回代理本地结果.但没有代理就没关系.

所以,我必须猜测.

应该每次都有相同的额外请求(我已经设计了这个,请看下面的代码)用户进程设置当前位置或者可能是我错过了一些请求标题或者是最简单的方法而且我有点愚蠢?

// Setting location like a boss
$randomKey = mt_rand(1111,999999);          

// SEOStats Curl wrapper
$test = static::gCurl("?q=testing" . $randomKey . "#q=testing". $randomKey, false, Config\DefaultSettings::ALLOW_GOOGLE_COOKIES, $proxy );

$q = explode(";;--;;", $test);
preg_match("/;sig=(.*?)\"/i", $test, $out);
$key = $out[1];

//Suggested Google Geocoder location
$zc = (!empty($location)) ? urlencode($location) : urlencode("Home sweet home");
$url = "https://www.google." . Config\DefaultSettings::GOOGLE_TLD . "/" . "uul?muul=4_18&luul=$zc&uulo=1&usg=$key&hl=ru";

$ch …
Run Code Online (Sandbox Code Playgroud)

php search curl google-search serp

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

Firebase - 如何在身份验证后为每个用户写入/读取数据

我试图理解但是无法看到登录后我存储的数据的方式和位置.

public static final String BASE_URL = "https://xyz.firebaseio.com";

Firebase ref = new Firebase(FirebaseUtils.BASE_URL);
    ref.authWithPassword("xyz@foo.com", "some_password", new Firebase.AuthResultHandler() {

    @Override
    public void onAuthenticated(AuthData authData) {
        Toast.makeText(LoginActivity.this, "Login Successful", Toast.LENGTH_SHORT).show();
        startActivity(new Intent(LoginActivity.this, MainActivity.class));
    }
    @Override
    public void onAuthenticationError(FirebaseError firebaseError) {
    }
}
Run Code Online (Sandbox Code Playgroud)

此时,我已成功通过身份验证并登陆MainActivity.接下来onCreateMainActivity.我初始化了Firebase

firebase = new Firebase(FirebaseUtils.BASE_URL).child("box");

// adapter below is an ArrayAdapter feeding ListView
firebase.addChildEventListener(new ChildEventListener() {
    @Override
    public void onChildAdded(DataSnapshot dataSnapshot, String s) {
        if (dataSnapshot.getValue(Box.class) instanceof Box)
            adapter.add(dataSnapshot.getValue(Box.class).getName());
    }

    @Override
    public void …
Run Code Online (Sandbox Code Playgroud)

android firebase firebase-security

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

mp4parser在Android Studio的设备上运行,但在手动安装APK时崩溃

我正在使用mp4parser合并videos.从AS运行时,该应用程序运行完美.但如果我手动安装应用程序(传输并运行APK)或者如果我从中运行它TestFairy,应用程序崩溃.

当我更新Target Sdk到时,这种情况就开始发生了Lollipop.我添加了

`aspectjrt-1.7.3.jar` 
`isoparser-1.0-RC-27.jar` 
Run Code Online (Sandbox Code Playgroud)

进入libs我项目的目录.

我也试过以下 versions

`aspectjrt-1.8.5.jar` 
`isoparser-1.0-RC-37.jar`
`isoparser-1.0.6.jar`.
Run Code Online (Sandbox Code Playgroud)

不知道它是否正确的方式,但它的工作从Android Studio然后崩溃TestFairyManual install.

错误说

com.coremedia.iso.boxes.FileTypeBox 失踪

但它在那里isoparser jar.

我错过了什么,这是版本问题吗?

我的设备正在运行Android 4.2.2,如果我的目标SDK是,这也是一个问题Android 5.0

例外是:

Caused by: java.lang.ClassNotFoundException:com.coremedia.iso.boxes.FileTypeBox
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.coremedia.iso.boxes.FileTypeBox" on path: /data/app/com.myapp.appname-1.apk
Run Code Online (Sandbox Code Playgroud)

android android-studio mp4parser

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

调用popupwindow的showAtLocation会导致应用程序崩溃

我有一个从a扩展的类,View我试图显示popupWindow使用此代码

public class dbView extends View implements View.OnTouchListener {

    private void showDialog(String msg) {
        LayoutInflater layoutInflater;
        View dialogContent;
        final PopupWindow popupWindow;

        layoutInflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        dialogContent = layoutInflater.inflate(R.layout.pop_up_dialog, null);

        popupWindow = new PopupWindow(
                dialogContent,
                ViewGroup.LayoutParams.WRAP_CONTENT,
                ViewGroup.LayoutParams.WRAP_CONTENT);

        popupWindow.showAtLocation(this, Gravity.CENTER, 10, 10);

    }

}
Run Code Online (Sandbox Code Playgroud)

我的应用程序在尝试执行最后一行时崩溃.异常的消息是

无法在未调用Looper.prepare()的线程内创建处理程序

我已经找到了与该消息相关的答案,并且所有这些都涉及弹出窗口是在一个单独的线程上创建的,我应该使用 runOnUIThread但是如果我在VIEW中,我需要这个吗?这个问题的原因是什么?

android popup

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

是否应该在每个单独的线程中通知观察者?

我知道这听起来很重,但我正试图解决一个假设的情况.想象一下,你有一些物体的N个观察者.每个人都对对象状态感兴趣.应用Observer模式时,可观察对象倾向于迭代调用observer notify()|update()方法的观察者列表.

现在想象一下,特定的观察者有很多与可观察对象的状态有关的工作.例如,这会减慢上一次通知的速度.

因此,为了避免减慢对所有观察者的通知,我们可以做的一件事是在一个单独的线程中通知观察者.为了实现这一点,我想每个观察者都需要一个线程.这是一个痛苦的开销,我们正在努力避免因繁重工作导致的通知减慢.如果使用线程方法,最慢的是减速,是由无限循环引起的死线程.阅读这本有经验的程序员会很棒.

  • 有多年设计问题的人会怎么想?
  • 这是一个没有财务解决方案的问题吗?
  • 这是一个非常糟糕的主意吗?为什么?

这是一个模糊的例子,以展示并希望澄清我甚至没有测试的基本思想:

class Observable(object):
    def __init__(self):
        self.queues = {}

    def addObserver(self, observer):
        if not observer in self.queues:
            self.queues[observer] = Queue()
            ot = ObserverThread(observer, self.queues[observer])
            ot.start()

    def removeObserver(self, observer):
        if observer in self.queues:
            self.queues[observer].put('die')
            del self.queues[observer]

    def notifyObservers(self, state):
        for queue in self.queues.values():
            queue.put(state)

class ObserverThread(Thread):
    def __init__(self, observer, queue):
        self.observer = observer
        self.queue = queue

    def run(self):
        running = True
        while running:
            state = …
Run Code Online (Sandbox Code Playgroud)

multithreading observer-pattern

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

如何使视频全屏并保持纵横比?

我有一个尺寸的视频,无论屏幕大小如何,我都希望它始终显示全尺寸。同时,我想保持该视频的纵横比,这样它就不会拉伸,我会造成不好的外观。

我可以像这样完成拉伸效果,但视频看起来很糟糕:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <VideoView android:id="@+id/videoViewRelative"
         android:layout_alignParentTop="true"
         android:layout_alignParentBottom="true"
         android:layout_alignParentLeft="true"
         android:layout_alignParentRight="true"
         android:layout_width="fill_parent"
         android:layout_height="fill_parent">
    </VideoView>

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

在我的这种情况下,向用户显示整个视频并不重要,所以我需要像 ImageView 那样做的事情:

android:scaleType="centerCrop"
Run Code Online (Sandbox Code Playgroud)

有什么作物替代品VideoView吗?谢谢 :)

android android-videoview

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

如何在 Swift 中使用可解码?

我在我的项目中使用免费日期 API。我Decodable用来解析JSON数据。

在这里,我创建了我的结构:-

struct jsonStruct: Decodable {
var message: Bool?
var data: [dateData]
}

struct dateData: Decodable {
var quarter: Int?
var day: String?
var month: String?
}
Run Code Online (Sandbox Code Playgroud)

这是我使用解码器的代码:-

let jsonUrlString = "https://api.lrs.org/random-date-generator?lim_quarters=40&source=api-docs"
guard let url = URL(string: jsonUrlString) else { return }
    
URLSession.shared.dataTask(with: url) { (data, reponse, err) in
    guard let data = data  else { return }
    print(data)
        
    do {
        let jsonData = try JSONDecoder().decode([dateData].self, from: data)
        print(jsonData)
    }
    catch let jsonerr …
Run Code Online (Sandbox Code Playgroud)

ios swift decodable

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

如何通过objectId获取ParseUser对象?

我有objectId ,我想要获取ParseUser具有相同的对象objectId.我已阅读,我们可以使用get来获得ParseUserid解析文档,但语法没有给出那里.如果有人知道请帮助我.

我试过这个,但它没有用.

ParseQuery<ParseUser> query = ParseUser.getQuery();
query.whereEqualTo("objectId", userId);
query.findInBackground(new FindCallback<ParseUser>() {

    @Override
    public void done(List<ParseUser> object, ParseException e) {
        // TODO Auto-generated method stub
        if(e==null)
        for(ParseUser obj: object)
        {
            adress.setText(obj.getString("address"));
            contact.setText(obj.getString("contact"));
        }
        else
        {
            adress.setText("Not found");
        }

    }
}); 
Run Code Online (Sandbox Code Playgroud)

android parse-platform

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