Intent intent=new Intent(v.getContext(),MainActivity.class);
intent.putExtra("key","value");
startActivity(intent);
в моем случае этот код работает: намерение вызова в действии очень просто, см. Код ниже:
Intent intent=new Intent(HomeActivity.this,MainActivity.class);
intent.putExtra("key","value");
startActivity(intent);
**or try this code :**
Intent intent=new Intent(this,MainActivity.class);
intent.putExtra("key","value");
startActivity(intent);
Stephen Toub обсуждает потоковый конвейер в своем столбце вопросов.NET MSDN здесь. В статье он описывает CopyStream () метод, который копирует от одного входного потока до другого потока. Это звучит весьма схожим с тем, что Вы пытаетесь сделать.
Я прокрутил вместе быстрый дополнительный метод (так только VS 2008 w/3.5):
public static class StreamCopier
{
private const long DefaultStreamChunkSize = 0x1000;
public static void CopyTo(this Stream from, Stream to)
{
if (!from.CanRead || !to.CanWrite)
{
return;
}
var buffer = from.CanSeek
? new byte[from.Length]
: new byte[DefaultStreamChunkSize];
int read;
while ((read = from.Read(buffer, 0, buffer.Length)) > 0)
{
to.Write(buffer, 0, read);
}
}
}
Это может использоваться таким образом:
using (var input = File.OpenRead(@"C:\wrnpc12.txt"))
using (var output = File.OpenWrite(@"C:\wrnpc12.bak"))
{
input.CopyTo(output);
}
Можно также подкачать логику вокруг немного и записать a CopyFrom()
метод также.
Чтение буфера байтов и затем запись его являются самыми быстрыми. Методы как ReadLine()
потребность искать разделители строки, который занимает больше времени, чем просто заполнение буфера.
Я принимаю универсальным потоком, Вы имеете в виду любой другой вид потока, как Поток Памяти, и т.д.
Если так, самый эффективный путь состоит в том, чтобы считать блоки байтов и записать им в поток получателя. Размер блока может быть чем-то как 512 байтов.