最近、AndroidDeveloperConsoleで次のクラッシュのレポートが表示されることに気付きました。
android.os.NetworkOnMainThreadException
at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1099)
at java.net.InetAddress.getHostByAddrImpl(InetAddress.java:440)
at java.net.InetAddress.getHostName(InetAddress.java:313)
at android.media.MediaPlayer.checkHostdata(MediaPlayer.java:869)
at android.media.MediaPlayer.isLocalhost(MediaPlayer.java:940)
at android.media.MediaPlayer.setDataSourceBase(MediaPlayer.java:980)
at android.media.MediaPlayer.setDataSource(MediaPlayer.java:1085)
[the rest is irrelevant]
MediaPlayer.setDataSourceメソッドのどこかに、ネットワークに接続するコードがあり、StrictModeが吠えているようです。メインスレッドでsetDataSourceを呼び出すことは一般的な方法のように思われるため、これは少し驚くべきことです。
だから私の質問は、この問題に対処するための最善の方法は何ですか?mediaPlayerをメインスレッドから移動する必要がありますか?無視すべきですか?または、他の何か?