小编emm*_*mby的帖子

有没有办法让Android进程在OutOfMemoryError上产生堆转储?

-XX:+HeapDumpOnOutOfMemoryError每当Java进程用完堆时,sun JVM都支持转储堆的选项.

在Android上是否有类似的选项可以在OutOfMemoryException上创建一个Android应用程序转储堆?手动使用DDMS时,可能很难尝试正确计时.

android dump out-of-memory hprof

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

为什么EditText在Ice Cream Sandwich中保留其Activity的Context

在Ice Cream Sandwich中,当有一个包含EditText的Activity时,即使用户离开Activity,EditText也会保留Activity的Context.为了证明这一点,我创建了TestLeakActivity,它分配了一个大字节数组.由于Activity的Context不会被垃圾收集,因此字节数组会在堆上累积,最终导致OutOfMemoryError.您可以使用DDMS堆工具观察堆增长,并且可以通过查看Eclipse MAT中的HPROF文件来跟踪对EditText类的未完成引用.要创建内存泄漏,请进入LaunchActivity,然后继续启动并退出TestLeakActivity.

LaunchActivity.java
package com.example.testleakproject;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;

public class LaunchActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        Button button = new Button(this);
        button.setText("Start TestLeakActivity");
        button.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(LaunchActivity.this, TestLeakActivity.class);
                startActivity(intent);
            }
        });

        ViewGroup container = ((ViewGroup) findViewById(android.R.id.content));
        container.addView(button);
    }
}
TestLeakActivity.java
package com.example.testleakproject;

import android.app.Activity;
import android.os.Bundle;
import android.view.ViewGroup;
import android.widget.EditText; …

android memory-leaks android-4.0-ice-cream-sandwich

16
推荐指数
3
解决办法
2854
查看次数

如何"取消"CountDownLatch?

我有多个消费者线程在等待CountDownLatch1的大小使用await().我有一个生产者线程,countDown()当它成功完成时调用.

当没有错误时,这很有用.

但是,如果生产者检测到错误,我希望它能够将错误发送给消费者线程.理想情况下,我可以让生产者调用类似的东西abortCountDown(),让所有的消费者都收到InterruptedException或其他一些异常.我不想打电话countDown(),因为这需要我的所有消费者线程在他们打电话之后再做一次手动检查以获得成功await().我宁愿他们只是收到一个异常,他们已经知道如何处理.

我知道没有中止设施CountDownLatch.是否有另一个同步原语,我可以很容易地适应,有效地创建一个CountDownLatch支持中止倒计时?

java concurrency java.util.concurrent

16
推荐指数
2
解决办法
5910
查看次数

onResume在手机屏幕被锁定时被反复调用

看来,如果在手机屏幕被锁定时活动位于前台,广播事件和/或唤醒锁将导致该活动的onResume被调用,无论它们是否适用于您的应用.即使您没有以任何方式与手机互动,也会发生这种情况.不要解锁它,不要触摸它,不要做任何事情,并且在没有相应的onPause的情况下一遍又一遍地调用你的onResume.

我们注意到了这一点,因为我们在onResume上记录了一个跟踪事件,我们注意到有些设备正在获取这些onResume事件的TON.我们能够重新发现并注意到每次任何应用程序似乎都收到了意图(例如SugarSync,Google Voice或我们自己的应用程序中的被动位置监听器)时就会发生这种情况.

我们在运行ICS的Galaxy Nexus和Galaxy S3上注意到了这一点.有趣的是,我们无法在Jelly Bean上重现这个问题.

任何人都有指向这里可能发生的事情的指示?

android

16
推荐指数
1
解决办法
4668
查看次数

如何自定义React Native ListView的RefreshControl的外观

React Native的ListView有一个名为RefreshControl的内置pull-to-refresh控件.它非常易于使用.

我想自定义控件的外观和感觉,以使用不同的视觉设计,例如使用材料设计进度指示器.

如何在React Native中自定义RefreshControl的外观?

react-native

16
推荐指数
2
解决办法
7469
查看次数

如何在android的ArrayAdapter中覆盖过滤器?

我有一个ArrayAdapter包裹自定义对象的ArrayList.我想为该适配器编写一个自定义过滤器,这样当我调用getListAdapter().getFilter().filter("abc")列表时,将通过"abc"的任意转换过滤.

我想我会尝试覆盖ArrayAdapter.getFilter(),但这需要我重新实现私有ArrayAdapter.ArrayFilter,这需要访问一堆ArrayAdapter的私有实例.

最简单的方法是什么?

android filter android-arrayadapter

15
推荐指数
1
解决办法
5212
查看次数

在Android市场上的高分辨率资产的透明png

我正在尝试将具有透明背景的徽标上传到Android市场.出于某种原因,我的png正在被市场转变,以消除透明度.

我的设计师正在尽力遵循https://market.android.com/support/bin/answer.py?answer=1078870中的说明,但我们都无法弄清楚出了什么问题.据我们所知,他在png中做alpha,但看起来并不正确.

这是png:

在此输入图像描述

以下是市场上的情况:

在此输入图像描述

这似乎是市场上普遍存在的问题,尽管有些应用已经成功实现了这一目标.我们做错了什么?

png android alpha google-play

15
推荐指数
1
解决办法
5915
查看次数

如何排除git分支在travis中构建?

我有一个github项目,我正在用travis构建. https://travis-ci.org/emmby/greenDAO/branches

我希望travis在该项目中构建大多数分支,但是我希望排除其中一个特别的分支.

所以我.travis.yml在我的master分支上添加了以下内容:

branches:
  except:
    - mvn-repo
Run Code Online (Sandbox Code Playgroud)

但是,这并没有禁用分支的构建.所以阅读文档,我发现了这个说明:

请注意,目前(由于历史原因),.travis.yml需要出现在项目的所有活动分支上.

所以,我继续.travis.ymlmvn-repo分支中创建了一个包含相同branches部分的文件.然而,特拉维斯仍然坚持建立和失败我的mvn-repo分支机构.

为什么travis试图建立一个我标记为排除的分支?

github travis-ci

15
推荐指数
1
解决办法
2965
查看次数

暂停Android模拟器的方法?

我在笔记本电脑上做了很多开发,我使用各种Android模拟器来完成它.运行时,仿真器经常占用大量CPU,因此显着降低了笔记本电脑的电池寿命.

有没有办法暂时停止模拟器,或至少关闭任何消耗所有不必要的CPU的东西?

我知道使用sdk r9以及后来我可以对模拟器进行快照并快速退出/重新启动它,但是我希望我的工作流程比这更具侵略性.

android android-emulator

14
推荐指数
2
解决办法
3286
查看次数

maven配置文件可以继承自另一个maven配置文件吗?

我有两个几乎相同的配置文件.我不想复制每个配置中的配置,而是希望一个配置文件从另一个配置文件"继承",但我没有看到使用maven 3执行此操作的明显方法.

在maven中是否可以进行配置文件继承?

maven

14
推荐指数
1
解决办法
5515
查看次数