画像をサーバーに送信するが、受信クライアントに問題がある可能性があります。ログキャットはThe application may be doing too much work on its main thread
と表示されます。私はこれを解決する方法を知らない。ここに私のコード画像を処理しようとすると「アプリケーションが主スレッドで処理しすぎている可能性があります」
のonCreate
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
imageView = (ImageView) findViewById(R.id.IV);
BitmapImage.execute((Runnable)imageView);
}
画像受信と表示さ
public class BitmapImage extends AsyncTask<Object, Void, Bitmap> {
private ImageView bmImage;
DataInputStream dis;
OutputStream fos;
int len;
int size = 8012;
byte[] data = new byte[size];
@Override
protected Bitmap doInBackground(Object... params) {
Bitmap size = null;
Bitmap mBitmap = null;
bmImage = (ImageView)params[0];
try {
Log.d("TCP", "C: Connecting...");
Socket server = new Socket(IPN, 2965);
fName = "img.TIFF";
try {
PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(server.getOutputStream())), true);
out.println(command);
dirPath = getFilesDir().getAbsolutePath();
File filepath = new File(dirPath);
if (!filepath.isDirectory()) {
filepath.mkdirs();
Log.i("tag", "디렉토리 생성");
}
Log.i("tag", "m : " + "파일 생성");
dis = new DataInputStream(server.getInputStream());
rf = new File(filepath + "/" + fName);
fos = openFileOutput(fName, Context.MODE_PRIVATE);
while ((len = dis.read(data)) != -1) {
fos.write(data, 0, len);
Log.i("tag", "tag : " + "수신중");
}
Log.i("tag", "tag : " + "수신 완료");
} catch (Exception e) {
Log.e("tag", "err : " + e);
e.printStackTrace();
} finally {
fos.flush();
fos.close();
dis.close();
}
} catch (Exception e) {
Log.e("TCP", "C: Error", e);
}
try {
ParcelFileDescriptor pfd = getContentResolver().openFileDescriptor(Uri.fromFile(rf), "r");
mBitmap = BitmapFactory.decodeFileDescriptor(pfd.getFileDescriptor());
size = Bitmap.createScaledBitmap(mBitmap, (S*mBitmap.getWidth()), (S*mBitmap.getHeight()), true);
Log.i("tag", "출력 완료");
} catch (Exception e) {
Log.e("tag", "오류났당 -> " + e);
}
return size;
}
@Override
protected void onPostExecute(Bitmap bitmap) {
super.onPostExecute(bitmap);
bmImage.setImageBitmap(bitmap);
}
}
である私は、ファイルのサイズが、私は、ファイル形式を変更するので、問題であると思ったが、それはこの問題を解決しませんでした。ディスナイト受信部と出力部とを含む。これも解決できません。
最後に、私はいくつかの2番目のアプリケーションを受け取りたいと思います。私はアンドロイドのリモートPCを使用します。
「受信クライアントに問題がありますか」??私は送付するクライアントに問題があると思う。 – greenapps
あなたは間違ったファイルをチェックしていると思います。バックグラウンドスレッドでの呼び出しの切断以降、そのgonaがUIスレッドをブロックすることはありません。 – Muthu
BitmapImage.execute((Runnable)imageView); '。それはコンパイルされますか?あなたのインスタンスは、そのクラスと同じ名前を持っています。奇妙な。 'new'を使ってclasインスタンスをどこで作成していますか? – greenapps