小编Kir*_*man的帖子

通过市场强制应用更新,就像用户点击"更新"一样

我想知道,如果有某种"意图"或某种东西,迫使市场以编程方式更新用户安装的应用程序.就个人而言,我认为这是一个安全风险,所以我猜想没有办法,但也许有人知道一个解决方法.

android google-play

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

AccountManager.getAuthToken有时会返回空字符串

使用Android的AccountManager获取Google帐户的身份验证令牌时,我有一种奇怪的行为.

当应用程序启动时,第一次调用将getAuthToken返回一个带有空字符串的包作为标记.下一次,我调用相同的方法,它返回一个有效的令牌.

这是我的代码:

public String updateToken(final boolean invalidateToken, final Context c) {
    String authToken = "";
    try {
        final AccountManager am = AccountManager.get(c);
        final Account[] accounts = am.getAccountsByType("com.google");

        final Bundle bundle = am.getAuthToken(accounts[0], "android", true,
                null, null).getResult();

        authToken = bundle.getString(AccountManager.KEY_AUTHTOKEN)
                .toString();

        if (invalidateToken) {
            am.invalidateAuthToken("com.google", authToken);
            authToken = updateToken(false, c);
        }
    } catch (final Exception e) {
        //Just for debugging issues.
        e.printStackTrace();
    }
    return authToken;
}
Run Code Online (Sandbox Code Playgroud)

onCreate我的活动方法中调用此方法时,看起来像是返回空标记,尽管情况并非总是如此.

提前致谢.此外,我真的不知道何时使令牌无效.一天一次?每次启动?或者空标记是指示符,必须使标记无效,尽管它在下次调用时返回有效标记.

android

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

如何解决方法引用中的重载歧义?

假设我想将java方法分配给方法类型Log.d(String, String)的变量x,(String, String) -> Int我这样做:

val x: (String, String) -> Int = android.util.Log::d
Run Code Online (Sandbox Code Playgroud)

编译器说:

Error:(50, 56) Overload resolution ambiguity:
public open fun d(tag: kotlin.String!, msg: kotlin.String!): kotlin.Int defined in android.util.Log
public open fun d(tag: kotlin.String!, msg: kotlin.String!, tr: kotlin.Throwable!): kotlin.Int defined in android.util.Log
Run Code Online (Sandbox Code Playgroud)

显然还有第二种方法Log.d(String, String, Throwable)但是如何告诉编译器我想要哪一种?

kotlin method-reference

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

Kotlin与Android上的ART 100%兼容吗?

ART是Android上的"新"Dalvik运行时版,自Android 5.0起就取代了它.我真的很喜欢在JVM v8上运行的Kotlin和JavaFX.我不确定Kotlin编译器生成或将在其达到v1.0发布状态时生成的字节码版本.

所以问题是:ART现在能够运行"Kotlin代码"并且能够在未来运行Kotlin代码,例如当Kotlin编译器要发出Java8字节码时吗?或者ART不依赖于Kotlin编译器发出的字节码?

android bytecode dalvik kotlin

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

Log4j2 RollingFile 每天轮换

使用 Log4j2 2.8,有没有办法让我的日志每天轮换,但使当前文件具有常量名称?

例子:

my.log <-- current day (2017-02-13)
my-2017-02-12.log <-- last log
my-2017-02-11.log <-- second to last log
Run Code Online (Sandbox Code Playgroud)

我尝试了以下配置没有成功:

<RollingFile name="RollingFileMain" fileName="my.log"
             filePattern="my-%d{yyyy-MM-dd}-%i.log">
    <PatternLayout>
        <Pattern>%level{length=1} %d{yyyy-MM-dd HH:mm:ss} %c{-3} (%F:%L) %m%n</Pattern>
    </PatternLayout>
    <Policies>
        <TimeBasedTriggeringPolicy/>
    </Policies>
    <DefaultRolloverStrategy max="2"/>
</RollingFile>
Run Code Online (Sandbox Code Playgroud)

此外,当我在某一天首次启动应用程序时,出现以下异常:

2017-02-14 09:28:38,334 main ERROR An exception occurred processing Appender RollingFileMain java.lang.NullPointerException
    at org.apache.logging.log4j.core.appender.rolling.AbstractRolloverStrategy.getEligibleFiles(AbstractRolloverStrategy.java:107)
    at org.apache.logging.log4j.core.appender.rolling.AbstractRolloverStrategy.getEligibleFiles(AbstractRolloverStrategy.java:96)
    at org.apache.logging.log4j.core.appender.rolling.AbstractRolloverStrategy.getEligibleFiles(AbstractRolloverStrategy.java:89)
    at org.apache.logging.log4j.core.appender.rolling.DefaultRolloverStrategy.purgeAscending(DefaultRolloverStrategy.java:212)
    at org.apache.logging.log4j.core.appender.rolling.DefaultRolloverStrategy.purge(DefaultRolloverStrategy.java:199)
    at org.apache.logging.log4j.core.appender.rolling.DefaultRolloverStrategy.rollover(DefaultRolloverStrategy.java:326)
    at org.apache.logging.log4j.core.appender.rolling.RollingFileManager.rollover(RollingFileManager.java:310)
    at org.apache.logging.log4j.core.appender.rolling.RollingFileManager.rollover(RollingFileManager.java:227)
    at org.apache.logging.log4j.core.appender.rolling.RollingFileManager.checkRollover(RollingFileManager.java:207)
    at org.apache.logging.log4j.core.appender.RollingFileAppender.append(RollingFileAppender.java:267)
    at org.apache.logging.log4j.core.config.AppenderControl.tryCallAppender(AppenderControl.java:156)
    at org.apache.logging.log4j.core.config.AppenderControl.callAppender0(AppenderControl.java:129)
    at org.apache.logging.log4j.core.config.AppenderControl.callAppenderPreventRecursion(AppenderControl.java:120)
    at org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:84)
    at org.apache.logging.log4j.core.config.LoggerConfig.callAppenders(LoggerConfig.java:448) …
Run Code Online (Sandbox Code Playgroud)

log4j2

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

var name:String之间有什么区别?和var name:String

我是Kotlin Programming lang的新手.我一直在用android开发应用程序.我发现了一个数据类以构造函数String?String 任何人都可以让我明白这一点.

data class Person(var name: String?) {
//... 
}
data class Person(var name: String) {
//...
}
Run Code Online (Sandbox Code Playgroud)

kotlin

6
推荐指数
2
解决办法
1814
查看次数

VueJs - 将输入绑定到url param

我想将输入字段绑定到vue.js中的路由参数.

<input v-model="$route.params.query"/>
Run Code Online (Sandbox Code Playgroud)

可能吗?

javascript data-binding vue.js vue-router

6
推荐指数
3
解决办法
2889
查看次数

如何完全采用RecyclerView的SortedList

RecyclerView库最近添加了新SortedList类.假设我有一个回调,它实现了一个compare()可以随时间变化的方法,即可以切换底层的Comparator.告诉SortedList完全使用其数据的最佳方法是什么?

java android kotlin android-support-library android-recyclerview

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

如何简化类似if语句的长列表?

我是公司的自动化工程师.最近,我写了一段我的经理绝对不接受的代码.

我被要求为涉及不同GUI的测试用例编写一些脚本.我的经理不接受的代码部分是一个if/else声明,用于检查GUI中提示的当前语言.

我被指示使用Sikuli,因此,我知道应用程序当前设置的语言非常重要,因此我的脚本可以单击正确的按钮(根据语言而改变).

我的想法是代码遍历if/else语句然后指向正确的按钮.示例:该if/else语句确定"ok"按钮当前是Suomi翻译,因此它将单击正确的按钮.

这是我的代码示例:

switch (button) {
case "ok":
    if (s.exists("imagerepo/language/catalan_ok.png") != null) {
                            s.click("imagerepo/language/catalan_ok.png");
                        } else if (s.exists("imagerepo/language/suomi_ok.png") != null) {
                            s.click("imagerepo/language/suomi_ok.png");
                        } else if (s.exists("imagerepo/language/italian_ok.png") != null) {
                            s.click("imagerepo/language/italian_ok.png");
                        } else if (s.exists("imagerepo/language/portuguese_ok.png") != null) {
                            s.click("imagerepo/language/portuguese_ok.png");
                        } else if (s.exists("imagerepo/language/english_ok.png") != null) {
                            s.click("imagerepo/language/english_ok.png");
                        } else if (s.exists("imagerepo/language/dutch_ok.png") != null) {
                            s.click("imagerepo/language/dutch_ok.png");
                        } else if (s.exists("imagerepo/language/spanish_ok.png") != null) {
                            s.click("imagerepo/language/spanish_ok.png");
                        } else if (s.exists("imagerepo/language/french_ok.png") != null) {
                            s.click("imagerepo/language/french_ok.png");
                        } else …
Run Code Online (Sandbox Code Playgroud)

java if-statement

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

System.Text.Json 中 JObject.FromObject 的对应物是什么

使用 Newtonsoft Json,您可以JObject通过调用将对象转换为JObject.FromObject(object).

System.Text.Json 中是否有JsonDocument从对象中获取 a 的对应项?

c# .net-core system.text.json

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