我在接受采访时被问到使用for循环使用迭代器的优点是什么?使用for循环迭代器的优点是什么?
任何人都可以回答这个问题,以便将来如果我面临类似的问题那么我可以回答这个问题
我正在寻找有关优化Android浏览器网站设计的提示,技巧和资源.
我正在构建一个Android应用程序,并且可以通过Web界面访问某些功能.
我在4.4.2设备上遇到此异常.在Android 4.3设备或更低版本上无法重现.
设置是我有一个家庭活动(支持的子类ActionBarActivity).home活动检查一个布尔标志,如果为true,则启动一个启动画面活动(是的,理想情况下,启动在home活动之前,但我们假设我现在无法改变它以此方式工作).
启动启动屏幕startActivityForResult,它从服务器下载一些配置选项,然后完成并将结果返回到主页活动.
奇怪的是这在4.3及以下版本中工作正常,但在4.4设备上,我得到了上述异常(完整堆栈跟踪):
02-21 13:36:16.733  24409-24409/test.player E/ActivityThread? Performing stop of activity that is not resumed: {test.player/test.ui.actvities.HomeActivity}
    java.lang.RuntimeException: Performing stop of activity that is not resumed: {test.player/test.ui.actvities.HomeActivity}
            at android.app.ActivityThread.performStopActivityInner(ActivityThread.java:3147)
            at android.app.ActivityThread.handleStopActivity(ActivityThread.java:3234)
            at android.app.ActivityThread.access$1100(ActivityThread.java:135)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1223)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5017)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
            at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)
基于上面的内容,它看起来像onStop(因为我在onCreate上启动了splash活动)在onResume之前为Home Activity调用.
为什么现在这会导致4.4.x出现问题?
受{0}量词实际上有意义的问题的启发我开始使用包含{0}量词的一些正则表达式,并编写了这个基于各种测试正则表达式分割测试短语的小型java程序:
private static final String TEST_STR =
    "Just a test-phrase!! 1.2.3.. @ {(t·e·s·t)}";
private static void test(final String pattern) {
    System.out.format("%-17s", "\"" + pattern + "\":");
    System.out.println(Arrays.toString(TEST_STR.split(pattern)));
}
public static void main(String[] args) { 
    test("");
    test("{0}");
    test(".{0}");
    test("([^.]{0})?+");
    test("(?!a){0}");
    test("(?!a).{0}");
    test("(?!.{0}).{0}");
    test(".{0}(?<!a)");
    test(".{0}(?<!.{0})");
} 
Run Code Online (Sandbox Code Playgroud)
==>输出:
"":              [, J, u, s, t,  , a,  , t, e, s, t, -, p, h, r, a, s, e, !, !,  , 1, ., 2, ., 3, ., …Run Code Online (Sandbox Code Playgroud) 我./gradlew clean lint在控制台中运行命令并在build/lint/ReleaseOutput.html和build/lint/ReleaseOutput.xml中获取Lint报告我得到了相同错误的6倍:
而且我在XML文件中也看到6次相同的问题:
<issue
   id="UselessParent"
   severity="Error"
    ...
</issue>
Run Code Online (Sandbox Code Playgroud)
那么,它为什么会发生以及如何避免这样的问题呢?因为一个问题乘以6并且在Jenkins统计中不明显地显示.
更新:
我发现这个bug与gradle lint任务有关.要获得lint metrix Gradle几次构建:
file="build/manifests/release/AndroidManifest.xml"
file="build/manifests/debug/AndroidManifest.xml"
Run Code Online (Sandbox Code Playgroud)
所以它也可以使问题总数翻倍.
我尝试使用单元测试规则注释,Android Studio没有突出显示任何错误:
@Rule val htmlManager = HtmlManager()
Run Code Online (Sandbox Code Playgroud)
但是在执行测试后发生以下错误:
org.junit.internal.runners.rules.ValidationError:@Rule'htmlManager'必须是公开的.
如何解决这个问题?
让我们看看Java中的以下语句.
System.out.println(new DecimalFormat("0").format(2.4)); //returns 2
System.out.println(new DecimalFormat("0").format(2.5)); //returns 2  <---Concentrate here
System.out.println(Math.round(2.5));                    //returns 3
System.out.println(new DecimalFormat("0").format(2.6)); //returns 3
System.out.println(new DecimalFormat("0").format(3.5)); //returns 4
Run Code Online (Sandbox Code Playgroud)
在上述陈述中,除以下情况外,所有其他情况都很明显.
System.out.println(new DecimalFormat("0").format(2.5));
Run Code Online (Sandbox Code Playgroud)
它应该返回,3但它返回2.怎么样?
我只是尝试使用glide recyclerview集成并阅读有关它的文档,它说:" RecyclerView集成库使您的应用程序中可以使用RecyclerViewPreloader .RecyclerViewPreloader可以在用户在RecyclerView中滚动的位置之前自动加载图像 ",但是我没有意识到滑翔回收视图集成和滑行之间有什么区别,请说明滑行回收视图集成的进展是什么?我怎么能看出差异?
这是我的代码:
GlideModule.kt
@GlideModule
class GlideModule : AppGlideModule() {
    override fun applyOptions(context: Context?, builder: GlideBuilder?) {
        val requestOp = RequestOptions.noAnimation()
                .priority(Priority.LOW)
        builder?.setDefaultRequestOptions(requestOp)
                ?.setLogLevel(Log.VERBOSE)
        super.applyOptions(context, builder)
    }
    // Disable manifest parsing to avoid adding similar modules twice.
    override fun isManifestParsingEnabled(): Boolean {
        return false
    }
}
Run Code Online (Sandbox Code Playgroud)
MyPreloadModelProvide.kt
class MyPreloadModelProvide(val listUrls: List<String>, val context: Context) : PreloadModelProvider<Any> {
    override fun getPreloadItems(position: Int): MutableList<Any> {
        val url = listUrls.get(position)
        if (TextUtils.isEmpty(url)) {
            return Collections.emptyList();
        }
        return Collections.singletonList(url);
    }
    override …Run Code Online (Sandbox Code Playgroud) android kotlin android-recyclerview recyclerview-layout android-glide
我知道有很多关于这个问题的问题,但没有一个问题对我有帮助.我尝试了所有但没有,仍然在我的logcat和应用程序崩溃中得到IllegalStateException.
这是我的MainActivity.java:
package com.orar.cngcnasaud;
import android.app.Activity;
import android.content.Intent;
import android.content.res.Configuration;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.support.v4.app.ActionBarDrawerToggle;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.util.Log;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.ListView;
import android.widget.Toast;
public class MainActivity extends Activity implements OnClickListener {
    private ListView mDrawerList;
    private DrawerLayout mDrawer;
    private CustomActionBarDrawerToggle mDrawerToggle;
    private String[] menuItems;
    private static final String TAG = "AudioDemo";
    private static final String isPlaying = "Media is Playing"; 
    private static final String notPlaying = "Media has …Run Code Online (Sandbox Code Playgroud)