ActivityのonStopは必ず実行されるから安心していい

androidのActivity(やFragment)を使う上で、ライフサイクルが重要なことはしばしばいわれます。

しかし、よく分からないこともありました。

「onStopが呼ばれないままActivityがDestroyedに至るのは、どういう状況か」

多くのブログなどは、単にandroid公式の図だけコピーして「onStopとonDestroyは実行されない場合があります」と書くだけですが、手元で動かすと、onStopは実行されるんですよね(一方、onDestroyは、backボタンでアプリを消す以外の方法だと、だいたい呼ばれてないような)。で、onStopが呼ばれないケースって何だろうと思ってましたが、色々見ていたら公式に書いてありました。

developer.android.com

Starting with Honeycomb, an application is not in the killable state until its onStop() has returned.

Honeycombですよ奥さん!バージョン3.x、2011年デビューのあのHoneycombですよ!Honeycomb、Google Playの「プラットフォームのバージョン」には掲載さえされてないんですよ!

というわけで、Honeycomb以降はonStopが呼ばれるまではkillableにならない以上、現実的にはonStopは必ず実行されると考えていいと思います。いい加減、ライフサイクルの図も改訂してほしいなあ。

WHOの病名指針(2015年版)を試訳してみた

世の中は新型コロナウイルス一色ですね。

ところで、同ウイルスによる症状について、地名をつけて呼ぶべきという人たちがいるようです。

www.fnn.jp

新型コロナウイルスへの感染が引き起こす肺炎などの病気の名称について、「WHOが決めた『COVID-19』は覚えにくいし、病気の本質が理解しづらい。『武漢熱』と呼ぶべきだ」と訴えた。

地名をつけると本質が分かるという発想は、個人的には全く理解できません。

さて、この記事でも言及されていますが、世界保健機関(WHO)が病名の指針を2015年に作っています(つまり、比較的最近ではあるものの、今回のCOVID-19とは無関係です)。しかし、私が検索した範囲では、この指針の日本語版がありません。

原文(英語版)はこちら。

http://apps.who.int/iris/bitstream/10665/163636/1/WHO_HSE_FOS_15.1_eng.pdf

なので、あえて試訳をここに示します。もしWHOや国連から問題とされたら消します。また、国連なり厚労省が公式の日本語訳を出したら、この記事はそのリンクに書き換えます。

訳についての注意

  • 医療や公衆衛生の素人による試訳です。公式訳がないため、やむなく作成しているものです。なるだけ正確に訳するよう努めましたが、確実な情報が必要な場合は原文を参照してください。
  • 文の区切りは原則として原文にあわせていますが、読みやすさを考慮し、大きな区切りのカンマなどは文として分割した箇所があります。
  • 丸カッコ内は、理解しやすさを考慮して翻訳時に加えた文言です。
  • 角カッコで英小文字を囲んだ部分([a]、[b]……)は訳注で、末尾に内容を記載しました。はてなブログの仕様上、脚注は1系統しかないため、脚注は原注に用いました。

以下が試訳となります。

続きを読む

Chromium版のEdgeを旧バージョンと併用する

Microsoft EdgeChromiumベースになって新登場!ということで、少し話題でしたね。

さて、Windows 10の場合、Chromium版を入れると、前のEdgeは使えなくなります(ファイルは別なので消されませんが、実行ができません)。しかし、前のもの(旧Edge)も使いたい人もいると思います。典型的な例は、Web系などの開発者やデザイナーさんでしょう。なかなかアップデートしない人や、新しいEdgeがWSUSなどで遮られた環境の人を想定するWebサイトもあるはずです。

続きを読む

メーリングリストを蝕む闇の魔術に対する防衛術

これは「闇の魔術に対する防衛術 Advent Calendar 2019」の12月23日の項目として(翌日24日に)追加するものです。

qiita.com

前日(22日)のものを読んだら、つい書きたくなったのが動機です。中身は全く技術的ではありません。

qiita.com

さて、皆さん、メーリングリストって使ってますか?

続きを読む

サングラスは紫外線をどの程度カットするのか

なにやら、テレビで以前、「サングラスによっては、かけることで視野内が暗くなる分だけ瞳孔が開き、紫外線が入りやすくなる」とかいう話が流れていたようですね。ネット上でも、類似の話が書いてあります。

一方、サングラスは紫外線もカットしている、という話もあります。

そこで、計測してみました。測定に使ったのは、佐藤計量器製作所さんのPC-7960GTI。

www.sksato.co.jp

続きを読む

Electronを5から6にアップデートしたら

electronとtypescriptを使ったプロジェクトで、electronをバージョン5から6にアップデートしたら、すごい数のエラーが……。

エラーメッセージを落ち着いて調べたら対応策も分かり、無事エラーがなくなりました。

今回食らったのは、次のものです。

  • IpcMessageEventで受けていたイベント関数の引数型がIpcMainEvent/IpcRendererEventに変わった
  • showSaveDialogの第3引数がなくなった。代わりに戻り値の型がPromiseになった
  • MenuItemのroleにあるselectallselectAllになっていた
続きを読む