小编Mar*_*era的帖子

重用意图是否安全?

Android文档将Intent定义为"包含要执行的操作的抽象描述的信息包".这表明如果需要,您应该能够多次重复使用单个Intent对象,但是我没有看到任何示例显示这种情况/安全.有什么理由不做以下事情:

private final Intent enableBluetoothIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
...
protected void onCreate(Bundle savedInstanceState) {
  enabledBluetoothIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 0);
  ...
}
Run Code Online (Sandbox Code Playgroud)

然后startActivityForResult(enableDiscoverableIntent, REQUEST_ENABLE_BT_DISCOVERY)在代码中的多个地方调用?如果相同的意图开始两次会发生什么?

android android-intent

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

cursor.getString()是否将int强制转换为字符串?

文档说:

结果以及当列值为null或列类型不是字符串类型时此方法是否抛出异常是实现定义的.

他们在谈论哪种实施?sqlite的版本?会打电话

cursor.getString(INT_COLUMN)
Run Code Online (Sandbox Code Playgroud)

int价值强制转化为String

sqlite android cursor

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

OnDragListener没有收到DRAG_STARTED或DRAG_ENDED,但确实获得了ACTION_DROP

我遇到了一个奇怪的问题OnDragListener.我的目标视图使ACTION_DROP事件正常并处理它; 但它永远不会收到ACTION_DRAG_STARTEDACTION_DRAG_ENDED事件(事实上它除了掉落之外从未收到任何事件).

可能是什么导致了这个?这是一个问题,因为当掉落发生在目标之外时,我无法处理这种情况.

我发现了这个问题,但答案对我来说并不清楚.任何想法都非常感激.

我的可拖动视图有OnTouchListener:

@Override
public boolean onTouch(View v, MotionEvent ev) {
  switch (ev.getAction() & MotionEvent.ACTION_MASK) {
    case MotionEvent.ACTION_DOWN:
      startPointX = ev.getX();
      startPointY = ev.getY();
      isOnClick = true;
      break;
    case MotionEvent.ACTION_CANCEL:
    case MotionEvent.ACTION_UP:
      if (isOnClick) {
        isOnClick = false;
        // handle single click
      }
      break;
    case MotionEvent.ACTION_MOVE:
      if (isOnClick && movePassesThreshold(ev)) {
        isOnClick = false;
        draggableView.startDrag(...);
      }
      break;
    default:
      break;
  }
  return true;
}
Run Code Online (Sandbox Code Playgroud)

目标视图有OnDragListener: …

android drag-and-drop

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

标签 统计

android ×3

android-intent ×1

cursor ×1

drag-and-drop ×1

sqlite ×1