小编Kai*_*Kai的帖子

了解isFinishing()

isFinishing()http://developer.android.com/reference/android/app/Activity.html上阅读Android文档后,我感到困惑

如果我打电话isFinishing()onPause(),返回值是什么isFinishing()呼,应在以下3个方案是什么?

  1. 由于finish()被调用,活动正在被杀死.
  2. 由于内存不足,活动不在前台,而活动(不是应用程序)被操作系统杀死.
  3. 活动将进入后台.

我确信在方案1中结果finish()将是真的,在方案3 中将是错误的.

情景2怎么样?在方案2中会isFinishing()返回true还是false

android

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

什么时候应用MeasureSpec.UNSPECIFIED和MeasureSpec.AT_MOST?

我有点困惑MeasureSpec.UNSPECIFIEDMeasureSpec.AT_MOST.我知道,当match_parent或恒定的尺寸值被设置为layout_widthlayout_height,MeasureSpec.EXACTLY将测量视图时被应用.

然后,怎么样MeasureSpec.UNSPECIFIEDMeasureSpec.AT_MOST

我的理解是,当layout_widthlayout_height设置为wrap_content,MeasureSpec.UNSPECIFIED将被应用,因为wrap_content装置的图的高度或宽度可以是根据内容的任何尺寸.但很多文章都表示这wrap_content意味着MeasureSpec.AT_MOST.所以我很困惑.我不知道什么时候MeasureSpec.AT_MOST应该应用.

android

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

单击链接时不要更改链接颜色

我在HTML页面中有一个链接:

<a href="#foo">foo</a>
Run Code Online (Sandbox Code Playgroud)

链接文本的颜色最初为蓝色.单击链接时,链接文本的颜色将首先更改为红色,然后再更改为蓝色.我希望链接文本的颜色在用户点击时不会改变.我怎样才能实现呢?

我试过了

a:active {
    color: none;
}
Run Code Online (Sandbox Code Playgroud)

在CSS中,但没有运气.

我不想在CSS中使用它:

a:active {
    color: blue;
}
Run Code Online (Sandbox Code Playgroud)

,因为链接文本的原始颜色可以是蓝色以外的其他颜色.

谢谢.

编辑:页面显示在iPhone浏览器上,我想创建一个:active来保持原始链接文本颜色.

html css html5

28
推荐指数
3
解决办法
12万
查看次数

ListView分隔符未显示

我有一个带BaseAdapter的ListView.在XML中,我将项目分隔符指定为红色,高度为10dip.

    <ListView android:layout_width="fill_parent"
                android:layout_height="0px"
                android:id="@+id/lv"
                android:layout_weight="1"
                android:cacheColorHint="#00000000"
                android:divider="#FF0000"
                android:dividerHeight="10dip"
                android:fadingEdge="none">
    </ListView>
Run Code Online (Sandbox Code Playgroud)

但是,当应用程序运行时,我没有看到项目之间的红色分隔符.有人可以告诉我为什么吗?谢谢.

编辑:在我的适配器代码中,我有以下代码:

@Override
public boolean areAllItemsEnabled() {
    return false;
}

@Override
public boolean isEnabled(int position) {
    return false;
}
Run Code Online (Sandbox Code Playgroud)

因为我想控制每个项目的onClick行为.我不知道上面的代码是否会使分隔符消失.

android

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

使用FLAG_ACTIVITY_REORDER_TO_FRONT将活动置于最前面

我的活动堆栈是A1 B A2,顶部是A2.

A1和A2是相同活动的实例,A.现在在A2中,我希望A2退出并将A1带到前面,所以最后的堆栈应该是B A1.我该如何实施呢?

我执行的当前代码是:

        finish();

        intent = new Intent(this, A.class);
        intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT | Intent.FLAG_ACTIVITY_PREVIOUS_IS_TOP);
        startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

上面的代码将B带到了前面,所以最后的堆栈是A1 B,这不是我的预期.

任何的想法?

谢谢.

android

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

异步javascript加载/执行

在这篇文章中,异步.js文件加载语法,有人说,"如果存在async属性,那么脚本一旦可用就会异步执行."

(function() {
  var d=document,
  h=d.getElementsByTagName('head')[0],
  s=d.createElement('script');
  s.type='text/javascript';
  s.async=true;
  s.src='/js/myfile.js';
  h.appendChild(s);
}()); /* note ending parenthesis and curly brace */
Run Code Online (Sandbox Code Playgroud)

我的问题是,"脚本将异步执行"是什么意思?这个脚本是否会在与页面中其他javascripts不同的线程中执行?如果是,我们是否应该担心两个线程中的同步问题?

谢谢.

javascript

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

我的应用经常抛出android.view.WindowLeaked异常 -

我的应用经常抛出异常,如下所示:

E/WindowManager(6282):android.view.WindowLeaked:活动com.myActivity泄露了最初添加的窗口com.android.internal.policy.impl.PhoneWindow$DecorView@4479b710

当主要活动开始并启动任务时,应用程序会显示进度对话框.任务完成后,它将关闭进度对话框.

我的代码如下.有人能帮我吗?

public class MyActivity extends Activity {

private static int ID_DIALOG_PROGRESS = 2001;

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);        
    setContentView(R.layout.my_activity);
    showDialog(ID_DIALOG_PROGRESS);
    new MyTask().execute(null, null, null);
}

@Override
protected Dialog onCreateDialog(int id) {
    if (id == ID_DIALOG_PROGRESS) {
        ProgressDialog loadingDialog = new ProgressDialog(this);
        loadingDialog.setTitle("");
        loadingDialog.setMessage("");
        loadingDialog.setIndeterminate(true);
        loadingDialog.setCancelable(false);
        return loadingDialog;
    }

    return super.onCreateDialog(id);
}

private class MyTask extends AsyncTask<Void, Void, Void> {

    @Override
    protected Void doInBackground(Void... arg0) {

            /* Do something expensive here...*/

            /* Start other activity*/
            Intent intent …
Run Code Online (Sandbox Code Playgroud)

android

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

同步语句的NullPointerException

我尝试在下面的代码中同步一个对象:

public void myMethod() {
    synchronized (globalObj) {
        //Do something here
    }
}
Run Code Online (Sandbox Code Playgroud)

代码在一个线程中执行.问题是,另一个线程可能将'globalObj'设置为null.然后,当'globalObj'被其他线程设置为null时,'synchronized(globalObj)'将抛出NullPointerxception.

同步对象的最佳做法是什么,因此不会抛出NullPointerException?

谢谢.

java

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

我可以在外部类的构造函数中实例化一个匿名类吗?

我有以下代码:

public class Outer {
     public Interface Anony {
         public void callback();
     }

     public Outer() {
        OtherClass.foo(new Anony() {
            @Override
            public void callback() {
                ....
            }
        });
    }
}
Run Code Online (Sandbox Code Playgroud)

但我的朋友告诉我,它有一些问题.我在Outer的构造函数中创建了一个匿名类实例,因此匿名类实例隐式引用了外部类实例,即Outer.this.但此时,外类实例还没有完全创建.因此,匿名类实例引用具有不完整状态的对象,因此问题.

他是对的吗?谢谢.

java

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

FLAG_ACTIVITY_CLEAR_TOP和onActivityResult

我的活动堆栈是ABC,C位于顶部.使用startActivityForResult()启动B.

现在,在C中,它启动A并使用以下代码清除顶部:

        finish();

        intent = new Intent(this, A.class);
        intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

我的问题是,在执行上面的代码之后,是否会调用A中的onActivityResult()?我预计它会,因为B在C开始A并且清除顶部后被销毁.但是,我的测试代码显示A中的onActivityResult()未被调用.我很迷惑.有人可以帮忙吗?

谢谢.

android

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

标签 统计

android ×6

java ×2

css ×1

html ×1

html5 ×1

javascript ×1