Handler 간단 한 앨범 뷰 어 인 스 턴 스 코드 만 들 기
Android 플랫폼 에서 새로 시 작 된 스 레 드 는 Activity 의 Widget 에 접근 할 수 없고 실행 상 태 를 외부 로 보 낼 수도 없습니다.그러면 Handler 체제 가 정 보 를 전달 해 야 합 니 다.Handler 류 는 android.os 패키지 에 있 고 주요 기능 은 Activity 의 Widget 과 응용 프로그램의 스 레 드 간 의 상호작용 을 완성 하 는 것 입 니 다.
Handler 클래스 가 있 는 프로그램 을 개발 하 는 절 차 는 다음 과 같 습 니 다.
1.Activity 나 Activity 의 Widget 에서 Handler 클래스 의 대상 을 개발 하고 handlerMessage 방법 을 다시 쓴다.
2.새로 시작 하 는 스 레 드 에서 sendEmpty Message 나 sendmessage 방법 을 호출 하여 Handler 에 메 시 지 를 보 냅 니 다.
3.Handler 클래스 의 대상 은 handlerMessage 방법 으로 메 시 지 를 받 은 다음 메시지 에 따라 다른 동작 을 수행 합 니 다.
Handler 사용 사례(간단 한 앨범 뷰 어)
레이아웃 파일 을 작성 합 니 다.activity_handler_sample.xml 코드 는 다음 과 같 습 니 다.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center">
<ImageView
android:id="@+id/myImageView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"/>
</LinearLayout>
새 MyTread.java 파일 을 만 듭 니 다.코드 는 다음 과 같 습 니 다.
package com.example.sample_9_9;
public class MyTread extends Thread{ //
HandlerSampleActivity activity; //activity
int what = 1; // what
public MyTread(HandlerSampleActivity activity){ //
this.activity = activity; // activity
}
@Override
public void run(){
while(true){ //
activity.myHandler.sendEmptyMessage((what++)%4);
// ,%4
try{
Thread.sleep(2000); //
}
catch (Exception e){ //
e.printStackTrace(); //
}
}
}
}
HandlerSampleActivity.java 파일 코드 는 다음 과 같 습 니 다.
package com.example.sample_9_9;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ImageView;
public class HandlerSampleActivity extends AppCompatActivity {
ImageView myImageView;
Handler myHandler = new Handler() { // Handler
@Override
public void handleMessage(Message msg) { //
switch (msg.what) { // what
case 0:
myImageView.setImageResource(R.drawable .a);
break;
case 1:
myImageView.setImageResource(R.drawable .b);
break;
case 2:
myImageView.setImageResource(R.drawable .c);
break;
case 3:
myImageView.setImageResource(R.drawable .d);
break;
}
super.handleMessage(msg);
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_handler_sample);
myImageView = (ImageView) findViewById(R.id.myImageView);
MyTread myThread = new MyTread(this); //
myThread.start(); //
}
}
효과 도 는 다음 과 같다.이상 의 이 Handler 가 간단 한 앨범 뷰 어 를 만 드 는 인 스 턴 스 코드 는 바로 편집장 이 여러분 에 게 공유 한 모든 내용 입 니 다.여러분 께 참고 가 되 고 저희 도 많이 사랑 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
⚙️ 안드로이드 Thread와 Handler 2앞서 말씀드린 Message 정보들은 Message의 public 변수로 설명할 수 있습니다. 구현된 Runnable은, 해당 Runnable을 사용하는 스레드에서, 구현된 run()의 정의대로 실행됩니다. 즉, 스...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.