Если существует проблема с методом onActivityResult
, который находится внутри класса фрагмента, и вы хотите обновить то, что находится внутри класса фрагмента, используйте:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if(resultCode == Activity.RESULT_OK)
{
// If the user had agreed to enabling Bluetooth,
// populate the ListView with all the paired devices.
this.arrayDevice = new ArrayAdapter<String>(this.getContext(), R.layout.device_item);
for(BluetoothDevice bd : this.btService.btAdapater.getBondedDevices())
{
this.arrayDevice.add(bd.getAddress());
this.btDeviceList.setAdapter(this.arrayDevice);
}
}
super.onActivityResult(requestCode, resultCode, data);
}
Просто добавьте this.variable
, как показано в приведенном выше коде. В противном случае метод будет вызван внутри родительского действия, и переменная не будет обновляться в текущем экземпляре.
Я также протестировал его, поместив этот блок кода в MainActivity
, заменив this
на HomeFragment
и переменные статические. Я получил результаты, как я ожидал.
Итак, если вы хотите, чтобы класс фрагмента имел свою собственную реализацию onActivityResult
, приведенный выше пример кода является ответом.
Егеровская ткань Commodore права относительно:
dd if=/dev/sda of=/dev/sdb bs=1M
Кроме того, корректировка "readahead" на дисках обычно улучшает производительность. Значение по умолчанию может быть чем-то как 256, и оптимальные 1024. Каждая установка отличается, таким образом, необходимо было бы выполнить сравнительные тесты для нахождения оптимального значения.
# blockdev --getra /dev/sda
256
# blockdev --setra 1024 /dev/sda
# blockdev --getra /dev/sda
1024
# blockdev --help
Usage:
blockdev -V
blockdev --report [devices]
blockdev [-v|-q] commands devices
Available commands:
--getsz (get size in 512-byte sectors)
--setro (set read-only)
--setrw (set read-write)
--getro (get read-only)
--getss (get sectorsize)
--getbsz (get blocksize)
--setbsz BLOCKSIZE (set blocksize)
--getsize (get 32-bit sector count)
--getsize64 (get size in bytes)
--setra READAHEAD (set readahead)
--getra (get readahead)
--flushbufs (flush buffers)
--rereadpt (reread partition table)
--rmpart PARTNO (disable partition)
--rmparts (disable all partitions)
#
Возможно, можно использовать два процесса
dd if=indevfile | dd of=outdevfile
Я предположу, что можно установить другие dd опции, поскольку это подходит Вам. Это имеет немного служебные, но должно позволить asynchrony между чтением одного диска и записью другой.
Вы уверены, что это не делает этого одновременно? Я ожидал бы, что дисковые кэши удостоверятся он, который происходит. В противном случае неблокирование или даже асинхронные чтения/записи может помочь,
Вы могли бы попытаться увеличить размер блока с помощью аргумента бакалавра наук; по умолчанию я полагаю, что dd использует размер блока, равный предпочтительному размеру блока диска, который будет означать намного больше чтений и записей копировать весь диск. dd Linux поддерживает человекочитаемые суффиксы:
dd if=/dev/sda of=/dev/sdb bs=1M
О Вашем обновлении: Насколько большой кэши Вашего HDs? (особенно пишущий). Может случиться так, что это слишком много, и Вы, возможно, должны уменьшить его для предотвращения ненужного блокирования.