{"id":747,"date":"2023-03-14T18:18:11","date_gmt":"2023-03-14T09:18:11","guid":{"rendered":"https:\/\/www.dogrow.net\/android\/?p=747"},"modified":"2023-03-14T18:45:46","modified_gmt":"2023-03-14T09:45:46","slug":"blog42","status":"publish","type":"post","link":"https:\/\/www.dogrow.net\/android\/blog42\/","title":{"rendered":"(42) SendMessage\u3067\u30b9\u30ec\u30c3\u30c9\u306b\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc\u3092\u6e21\u3059\u3002"},"content":{"rendered":"<h1 class=\"my_h\">1. \u3084\u308a\u305f\u3044\u3053\u3068<\/h1>\n<p>\u30b9\u30ec\u30c3\u30c9\u306b\u5bfe\u3057\u3066\u30e1\u30c3\u30bb\u30fc\u30b8\u901a\u77e5\u3057\u305f\u3044\u3002<br \/>\n\u5177\u4f53\u7684\u306b\u306f <span class=\"my_fc_deeppinkBBig\">Handler#sendMessage<\/span> \u3092\u4f7f\u3063\u3066\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc\u3092\u6e21\u3057\u305f\u3044\u3002<\/p>\n<h1 class=\"my_h\">2. \u3084\u3063\u3066\u307f\u308b<\/h1>\n<h3 class=\"my_h\">(1) \u5b9f\u88c5\u624b\u9806<\/h3>\n<p><span class=\"my_fc_blueBBig\">\u30e1\u30c3\u30bb\u30fc\u30b8\u53d7\u4fe1\u51e6\u7406<\/span> \u3092\u66f8\u304f\u3002<\/p>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\n    private final Handler hMailBox = new Handler(Looper.getMainLooper()){\r\n        @Override\r\n        public void handleMessage(@NonNull Message msg) {\r\n            \/\/ TODO : \u3053\u3053\u306b\u30e1\u30c3\u30bb\u30fc\u30b8\u53d7\u4fe1\u51e6\u7406\u3092\u66f8\u304f\u3002\r\n        }\r\n    };\r\n<\/pre>\n<p><span class=\"my_fc_blueBBig\">\u30e1\u30c3\u30bb\u30fc\u30b8\u9001\u4fe1\u51e6\u7406<\/span> \u3092\u66f8\u304f\u3002<\/p>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\n    Message msg = new Message();\r\n    \/\/ TODO : msg\u306b\u6e21\u3057\u305f\u3044\u60c5\u5831\u3092\u683c\u7d0d\u3059\u308b\u3002\r\n    hMailBox.sendMessage(msg);\r\n<\/pre>\n<h3 class=\"my_h\">(2) \u30b5\u30f3\u30d7\u30eb\u30d7\u30ed\u30b0\u30e9\u30e0<\/h3>\n<p>\u51e6\u7406\u5185\u5bb9\u306f\u4ee5\u4e0b\u306e\u901a\u308a\u3002<br \/>\n(1) \u30b5\u30d6\u30b9\u30ec\u30c3\u30c9\u3092\u8d77\u52d5\u3057\u300110\u79d2\u9593\u5f85\u3064\u3002<br \/>\n(2) 10\u79d2\u7d4c\u904e\u5f8c\u3001\u30b5\u30d6\u30b9\u30ec\u30c3\u30c9\u304b\u3089\u30e1\u30a4\u30f3\u30b9\u30ec\u30c3\u30c9\u306b <span class=\"my_fc_deeppinkBBig\">sendMessage<\/span> \u3067\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc\u3092\u6e21\u3059\u3002<\/p>\n<pre class=\"brush: java; highlight: [15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,52,53,54,55,56,57,58]; title: ; notranslate\" title=\"\">\r\npackage com.example.testsendmessage;\r\n\r\nimport androidx.annotation.NonNull;\r\nimport androidx.appcompat.app.AppCompatActivity;\r\n\r\nimport android.os.Bundle;\r\nimport android.os.Handler;\r\nimport android.os.Looper;\r\nimport android.os.Message;\r\n\r\npublic class MainActivity extends AppCompatActivity {\r\n    private final Handler hMainThread = new Handler();\r\n\r\n    \/\/ \u30e1\u30c3\u30bb\u30fc\u30b8\u30cf\u30f3\u30c9\u30e9\r\n    private final Handler hMailBox = new Handler(Looper.getMainLooper()){\r\n        @Override\r\n        public void handleMessage(@NonNull Message msg) {\r\n            System.out.println(&quot;EXEC: handleMessage&quot;);\r\n            int arg_what = msg.what;\r\n            int arg_1 = msg.arg1;\r\n            int arg_2 = msg.arg2;\r\n            MyParam arg_o = (MyParam)msg.obj;\r\n            System.out.println(&quot;arg_what : &quot; + arg_what);\r\n            System.out.println(&quot;arg_1 : &quot; + arg_1);\r\n            System.out.println(&quot;arg_2 : &quot; + arg_2);\r\n            System.out.println(&quot;arg_prm1 : &quot; + arg_o.getPrm1());\r\n            System.out.println(&quot;arg_prm2 : &quot; + arg_o.getPrm2());\r\n        }\r\n    };\r\n\r\n    @Override\r\n    protected void onCreate(Bundle savedInstanceState) {\r\n        super.onCreate(savedInstanceState);\r\n        setContentView(R.layout.activity_main);\r\n        \/\/ 1\u79d2\u30bf\u30a4\u30de\u30fc\u30cf\u30f3\u30c9\u30e9\u8d77\u52d5\r\n        Thread th = new Thread(runTimer);\r\n        th.start();\r\n    }\r\n\r\n    \/\/ 1\u79d2\u5468\u671f\u51e6\u7406\r\n    private final Runnable runTimer = new Runnable() {\r\n        @Override\r\n        public void run() {\r\n            try {\r\n                \/\/ 10\u79d2\u9593\u5f85\u3061\r\n                int i;\r\n                for (i = 1; i &lt;= 10; i++) {\r\n                    System.out.println(&quot;EXEC: runTimer &quot; + i);\r\n                    Thread.sleep(1000);\r\n                }\r\n                \/\/ Main thread\u306b\u30e1\u30c3\u30bb\u30fc\u30b8\u9001\u4fe1\r\n                MyParam myp = new MyParam(&quot;ABC&quot;, 123);\r\n                Message msg = new Message();\r\n                msg.what = 1;\r\n                msg.arg1 = 2;\r\n                msg.arg2 = 3;\r\n                msg.obj = myp;\r\n                hMailBox.sendMessage(msg);\r\n            }\r\n            catch(InterruptedException e){\r\n                e.printStackTrace();\r\n            }\r\n        }\r\n    };\r\n}\r\n<\/pre>\n<p>sendMessage\u306e\u5f15\u6570 msg\u306e obj\u30d5\u30a3\u30fc\u30eb\u30c9\u306b\u57cb\u3081\u8fbc\u3093\u3060 MyParam\u306f\u4ee5\u4e0b\u306e\u901a\u308a\u3002<br \/>\n\u305f\u3060\u306e\u30af\u30e9\u30b9\u3060\u3002<\/p>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\npublic class MyParam {\r\n    private String prm1;\r\n    private int    prm2;\r\n    public MyParam(String prm1, int prm2){\r\n        this.prm1 = prm1;\r\n        this.prm2 = prm2;\r\n    }\r\n    public String getPrm1(){\r\n        return this.prm1;\r\n    }\r\n    public int getPrm2(){\r\n        return this.prm2;\r\n    }\r\n}\r\n<\/pre>\n<hr class=\"my_hr_bottom\">\n","protected":false},"excerpt":{"rendered":"<p>1. \u3084\u308a\u305f\u3044\u3053\u3068 \u30b9\u30ec\u30c3\u30c9\u306b\u5bfe\u3057\u3066\u30e1\u30c3\u30bb\u30fc\u30b8\u901a\u77e5\u3057\u305f\u3044\u3002 \u5177\u4f53\u7684\u306b\u306f Handler#sendMessage \u3092\u4f7f\u3063\u3066\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc\u3092\u6e21\u3057\u305f\u3044\u3002 2. \u3084\u3063\u3066\u307f\u308b (1) \u5b9f\u88c5\u624b\u9806 \u30e1\u30c3\u30bb\u30fc\u30b8\u53d7\u4fe1\u51e6\u7406 \u3092\u66f8\u304f\u3002 priv\u2026 <span class=\"read-more\"><a href=\"https:\/\/www.dogrow.net\/android\/blog42\/\">\u7d9a\u304d\u3092\u8aad\u3080 &raquo;<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2,15],"tags":[],"class_list":["post-747","post","type-post","status-publish","format-standard","hentry","category-androidstudio","category-java"],"views":806,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.dogrow.net\/android\/wp-json\/wp\/v2\/posts\/747","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dogrow.net\/android\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dogrow.net\/android\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dogrow.net\/android\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dogrow.net\/android\/wp-json\/wp\/v2\/comments?post=747"}],"version-history":[{"count":10,"href":"https:\/\/www.dogrow.net\/android\/wp-json\/wp\/v2\/posts\/747\/revisions"}],"predecessor-version":[{"id":821,"href":"https:\/\/www.dogrow.net\/android\/wp-json\/wp\/v2\/posts\/747\/revisions\/821"}],"wp:attachment":[{"href":"https:\/\/www.dogrow.net\/android\/wp-json\/wp\/v2\/media?parent=747"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dogrow.net\/android\/wp-json\/wp\/v2\/categories?post=747"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dogrow.net\/android\/wp-json\/wp\/v2\/tags?post=747"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}