「Android/handler」の版間の差分
提供: 初心者エンジニアの簡易メモ
(ページの作成:「==handlerの基本的な使い方== Handler handler = new Handler(); handler.post(new Runnable() { @Override public void run() { Log.i("test", "run()...」) |
|||
行1: | 行1: | ||
− | ==handlerの基本的な使い方== | + | ==handlerの基本的な使い方(UIスレッドで実行)== |
Handler handler = new Handler(); | Handler handler = new Handler(); | ||
handler.post(new Runnable() { | handler.post(new Runnable() { | ||
行27: | 行27: | ||
} | } | ||
} | } | ||
+ | |||
+ | ==handlerをUIスレッドでなくワーカースレッドで実行== | ||
+ | HandlerThread handlerThread = new HandlerThread("custom_name1"); | ||
+ | handlerThread.start(); | ||
+ | Handler handler = new Handler(handlerThread.getLooper()); | ||
+ | handler.post(new Runnable() { | ||
+ | @Override | ||
+ | public void run() { | ||
+ | Log.i("test", "run()"); | ||
+ | } | ||
+ | }); |
2016年11月25日 (金) 17:03時点における版
handlerの基本的な使い方(UIスレッドで実行)
Handler handler = new Handler(); handler.post(new Runnable() { @Override public void run() { Log.i("test", "run()"); } });
5秒ごとに定期的に実行する方法
public class MainActivity extends AppCompatActivity { Handler mHandler = new Handler(); private Runnable mHandlerTask = new Runnable() { @Override public void run() { Log.i("test", "run()"); // 5秒後に実行 mHandler.postDelayed(mHandlerTask, 5000L); } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 初回呼び出し mHandler.post(mHandlerTask); } }
handlerをUIスレッドでなくワーカースレッドで実行
HandlerThread handlerThread = new HandlerThread("custom_name1"); handlerThread.start(); Handler handler = new Handler(handlerThread.getLooper()); handler.post(new Runnable() { @Override public void run() { Log.i("test", "run()"); } });