いくつかのオプションがあります。私が最も気に入っているのは、あるアクティビティから次のアクティビティに送信するIntentオブジェクトでこれらの値を渡すだけです。したがって、DLNAメディアサーバーのディレクトリを参照するアクティビティは、インテントで選択されたサーバーを受け取ります。それがDLNAリストアクティビティからのものである場合、それは素晴らしいことですが、インテントは、メディアサーバーディレクトリをユーザー。データをアプリケーションの他の部分に依存する必要がないように、アクティビティ内に機能をカプセル化するように非常に努力してください。
アプリケーション全体で本当に必要なデータがある場合は、SharedPreferencesを確認してください。これらはユーザーに表示できるため、ユーザーはアプリケーションの呼び出し全体で持続する選択を行うことができ、アプリケーション内のすべてのアクティビティで設定を簡単に読み取って最新の状態に保つことができます。ただし、すべての設定を表示可能にする必要はありません。いつでもプリファレンスエディタを作成して、ユーザーに表示せずに独自のプリファレンスを読み書きできます。
他のいくつかのオプションは、共有値を保持するシングルトンクラスを設定し、すべてのアクティビティが参照できるようにするか、最後の手段としてApplicationクラスを拡張し、ゲッターとセッターを作成してアプリケーション全体で値を使用できるようにすることです。アプリケーションはAndroidの重要なクラスであり、現在または将来に誤って何かを壊さないように、そのままにしておく方がよいため、最後の手段と言います。
他の質問に答えるには、サービスを使用してネットワークアクセスを行うだけでなく、スレッドも作成する必要があります。Androidサービスには、デフォルトではバックグラウンドスレッドが含まれていません。これは、自分で行う必要があります。メイン(別名UI)スレッドからネットワーク呼び出しを行わないでください。