小编Cod*_*ile的帖子

从最接近目标值的数组中选择值的算法?

我有一个几乎排序的值数组28个元素长.我需要找到总和为算法提供的目标值的一组值(或者如果找不到精确的和,则最接近的总和低于目标值).

我目前有一个简单的算法来完成这项工作,但它并不总能找到最佳匹配.它在理想情况下使用一组特定的值工作,但我需要一个更强大,更准确的解决方案,可以处理更多种类的数据集.

该算法必须用C语言编写,而不是用C++编写,并且用于嵌入式系统,因此请记住这一点.

这是我目前的算法供参考.它从可用的最高值开始迭代.如果当前值小于目标总和,则将该值添加到输出并从目标总和中减去该值.重复此过程直到达到总和或用完值.它假设一个几乎提升的排序列表.

//valuesOut will hold a bitmask of the values to be used (LSB representing array index 0, next bit index 1, etc)

void pickValues(long setTo, long* valuesOut)
{
    signed char i = 27;//last index in array
    long mask = 0x00000001;

    (*valuesOut) = 0x00000000;
    mask = mask<< i;//shift to ith bit
    while(i>=0 && setTo > 0)//while more values needed and available
    {
        if(VALUES_ARRAY[i] <= setTo)
        {
            (*valuesOut)|= mask;//set ith bit
            setTo = setTo - …
Run Code Online (Sandbox Code Playgroud)

c embedded algorithm math

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

如何将布局从xml添加到Extended FrameLayout Android?

我有一个名为NoteViewextend 的自定义类FrameLayout.以前,我刚刚使用该库存LinearLayout并且已经构建了一个XML布局,我希望通过添加整个层次结构(以及其他一些叠加视图,这就是我需要framelayout的原因)来重用NoteView.

问题是我无法弄清楚如何膨胀XML并将其添加到NoteView从内部NoteView类.我可以在初始化完成后添加它,但是我希望能够在我NoteView从XML实例化或扩充时自动添加该层次结构并自动添加它.

如何FrameLayout通过从NoteView类本身添加XML来扩展XML 扩展?

layout user-interface android views

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

如何在Android上的应用程序中打开电子邮件附件?

我想打开一个特定类型的文件,我的应用程序已经可以通过电子邮件将其作为附件发送.我需要能够让Android电子邮件应用程序选择我的应用程序下载或打开该特定的文件类型.我无法弄清楚如何设置一个意图过滤器,让我这样做.有谁知道这是怎么做的?

email android attachment download intentfilter

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

如何在不更改主键的情况下执行SQL插入或替换操作?

我正在尝试将记录插入到SQLite数据库表中.该表对列"URL"具有唯一约束,并且主键自动增量整数"_id".

我使用insert或replace作为我的冲突解决方案,因为我需要保留新数据.但是,此方法是递增主键并弄乱其他表中的某些外键.

在不更新_id的情况下覆盖记录的最佳方法是什么?

sql database sqlite android

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

通过最小分配的处理程序消息传递数组的副本?

我正在后台线程上读取蓝牙数据流,并将该数据传递给UiThread,以便通过消息处理程序进行处理和显示.可在此处找到该过程的更详细描述.

目前我正在读取InputStream byte[]并使用Handler.obtainMessage()来获取带有字节数组作为对象争论的消息.

我遇到了数据包覆盖彼此的问题,因为数组没有跨线程锁定,并且在UiThread可以处理之前在后台被覆盖.显而易见的解决方案是将数组复制到新数组并传递该新对象.

问题是这在Android上非常昂贵,我将获得相当连续的数据流.有没有更好的方法将此数据传递给主UiThread?也许通过同步字节数组或更高效的内存复制方式?

java optimization multithreading android

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

如何在ASyncTask旋转完成后结束android服务?

我有一个Downloader服务,可以加载从我的数据库运行的下载列表.

然后它创建一个ASyncTask,它将在后台线程中运行下载.

这一切都运行得很好,但问题是我目前没有办法告诉服务该下载器已经完成.我不知何故必须从ASyncTask的onPostExecute函数(在UIThread上运行)发送一条消息.

我不能简单地远程关闭服务,因为当ASyncTask完成时,服务有一些工作要做.

我已经考虑过从服务中注册一个监听器并在onPostExecute中调用它,但我认为这会导致在Task完成之前关闭服务或一些threadlocking问题等问题.

如何从ASyncTask向我的Downloader服务发送消息(如广播意图)?

编辑
这里有一些代码让你对我正在做的事感到困惑.

DownloadService.java(重要位):

public class DownloadService extends Service implements OnProgressListener {

/** The Downloads. */
private List<Download> mDownloads = new ArrayList<Download>(10);

private DownloadTask mDownloadTask;

/** The Intent receiver that handles broadcasts. */
private BroadcastReceiver mIntentReceiver = new BroadcastReceiver()
{
    @Override
    public void onReceive(Context context, Intent intent) {
        DebugLog.i(TAG, "onRecieve" +intent.toString());
        handleCommand(intent);
    }

};

/* (non-Javadoc)
 * @see android.app.Service#onCreate()
 */
@Override
public void onCreate() {
    DebugLog.i(TAG, "onCreate");
    mNM = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
    IntentFilter commandFilter = …
Run Code Online (Sandbox Code Playgroud)

java service android android-intent android-asynctask

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