나는 정말 정말 새로워서 너무 열심히 웃지 않는다. ... 또는 너무 비밀스럽게 이야기한다 ... 나는 검색하고 실험하고 등을 검색했다 ... 나는 배우고있다. , 그러나 나는 또한 혼란스러워지고있다!루프가 의도 한 결과를 기다린다. (Java Android)
나는 sdcard의 폴더를 반복하여 각 안드로이드 응용 프로그램에서/프린터를 성공적으로 처리 한 후에 하나씩 안드로이드 인 텐트를 통해 해당 폴더의 .html 파일의 각 인스턴스를 하나씩 보내야합니다. Let 's Print Droid (네트워크 연결 프린터를위한 훌륭한 인쇄 응용 프로그램). 이 응용 프로그램은 하나의 파일 만 받아 들일 수 있습니다. 파일을 처리 한 다음 프린터로 보내면 인 텐트를 통해 좋은 결과가 반환됩니다.
다양한 수면 옵션을 시도했습니다. (나쁜 습관을 알고 있습니다!) 기다리고 알림 (더 잘 믿겠습니까?)하지만 첫 번째 발견 또는 마지막 파일 (내 코드에 따라) 이상으로 인쇄 할 수 없습니다. !)
다음은 내 코드의 한 버전입니다. 이 버전은 "Lets Print Driod"앱을 통해 처리하는 첫 번째 파일을 전송 한 다음 내 Toast 메시지 "Waiting loop number ->"를 표시하면서 루프를 계속합니다.
누구나 내 루프에서 의도 결과를 받으면 알림을 사용하고 알리는 올바른 방법을 보여줄 수 있습니까?
도움을 주셔서 감사합니다.
package com.my.test;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.Menu;
import android.widget.Toast;
public class MainActivity extends Activity {
String received_results_from_LPD = "YES";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
try {
print_all_html();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public synchronized void print_all_html() throws InterruptedException {
received_results_from_LPD = "YES";
for(int x = 1; x < 6; x = x+1) {
if (received_results_from_LPD == "YES") {
Intent i = new Intent(Intent.ACTION_VIEW);
i.setClassName("com.blackspruce.lpd","com.blackspruce.lpd.WebPrint");
i.setData(Uri.parse("file:///storage/emulated/0/Pictures/test" + x + ".html"));
Toast.makeText(getApplicationContext(), "Loop Position " + x, Toast.LENGTH_SHORT).show();
Toast.makeText(getApplicationContext(), "Value of LPD " + received_results_from_LPD, Toast.LENGTH_SHORT).show();
Toast.makeText(getApplicationContext(), "Printing " + "test" + x + ".html", Toast.LENGTH_SHORT).show();
received_results_from_LPD = "NO"; //reset for next time
startActivityForResult(i, 99);
//wait();
}
else Toast.makeText(getApplicationContext(), "Waiting loop number --> " + x, Toast.LENGTH_SHORT).show();
received_results_from_LPD = "NO";
Thread.sleep(1000);
}
}
@Override
protected synchronized void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
if (data != null && requestCode == 99 && resultCode == RESULT_OK) {
//successful
Toast.makeText(getApplicationContext(), "Sucessfull", Toast.LENGTH_SHORT).show();
received_results_from_LPD = "YES";
//notify();
}
else {
//not successful
Toast.makeText(getApplicationContext(), "oopps!!!!", Toast.LENGTH_SHORT).show();
received_results_from_LPD = "YES";
//notify();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
일종의 고정 ... 일격을 했나요?!? 정확히 내가 원하는 것은 아니지만 Java를 더 잘 이해할 때까지 당분간 인쇄합니다!
음, 보류중인 파일 목록을 유지하고 onActivityResult에서 다음 파일을 발급 할 수 있습니다. – usethe4ce
기본적으로 루프를 뒤집어 야합니다. 프로그램 흐름을 "구동하는"루프 대신 프로그램 흐름이 이벤트 메서드를 통해 코드를 입력 할 때마다 수행 할 작업을 결정해야하는 루프가 필요합니다. –