처리기가 작동하는 방법을 알기 위해 예제를 만들려고합니다. 코드 belwo에서 볼 수 있듯이, 나는 끊임없이 실행되고 변수 i를 증가시키는 workerThread를 만들었습니다. run() 메서드 내에서 Handler 클래스의 본문에 표시된대로 증가 된 변수의 값을 TextView에 전달하려고합니다.sendMessage()가 정의되지 않았습니다.
이 문제는 라인이있는 "handler.sendMessage (m)"나에게이 문제를 해결하는 방법을 알려 주시기 바랍니다 빨간색
으로 표시됩니다 "새로운 핸들러()"하고있다,
입니다 MainActivity
public class MainActivity extends AppCompatActivity {
private final static String TAG = MainActivity.class.getClass().getSimpleName();
private TextView mtvIncr = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
this.mtvIncr = (TextView) findViewById(R.id.tvValue);
new WorkerThread().start();
}
Handler handler =new Handler() {//ERROR
@Override
public void handleMessage(Message msg) {
int sentInt = msg.getData().getInt("what");
mtvIncr.setText("r:"+Integer.toString(sentInt));
}
};
class WorkerThread extends Thread {
private int i = 0;
android.os.Handler mHandler = null;
@Override
public void run() {
super.run();
Looper.prepare();
while(true) {
Log.d(TAG, SubTag.bullet("WorkerThread", "i: " + (i++)));
SystemClock.sleep(1000);
Message m = new Message();
Bundle b = new Bundle();
b.putInt("what", i); // for example
m.setData(b);
handler.sendMessage(m);//ERROR
}
}
}
}
가능한 복제 (HTTP : // 유래 .com/questions/36215126/myhandler-obtainmessage-is-not-in-service-in-class-in-android) –
나는 또한 같은 질문이라고 믿는다. – W0rmH0le