2017-01-29 5 views
1

UIなしのアクティビティの使用方法を教えてください。私はコードが長すぎると感じるMainActivityを持っています。私は、各タスクのUIなしで個別のアクティビティを作成し、メインアクティビティで呼び出すことを考えていました(またはヘッドレスフラグメントを使用していますか? 。それは悪いアプローチですか? 1つのアクティビティで比較的長いコードをどのように管理しますか?メンテナンス可能なコードを書き込むためのUIのない​​アクティビティ

+2

"比較的長いコードを1つのアクティビティでどのように管理しますか?" - それを一般的でない別の'Activity'クラスに移動します。 Android(MVC、MVP、MVVMなど)に適用されているGUIアーキテクチャについてはかなり書かれています。 – CommonsWare

+0

@CommonsWareあなたは良い出典を教えてもらえますか?私は内部/匿名/ネストされたクラスに精通しており、セッター/ゲッターとクラスを分けています。しかし、より複雑な操作のために別のクラスを使用する方法については、より多くの情報を使用できます。私が持っているタスクの1つと同様に、私はMediaRecorderの目的とMediaPlayerのオブジェクトを作成してから、オーディオファイルの軽量比較を行う必要があります。そして同じ活動の中でこれと長さに似た仕事がいくつかあります。 – Zack

+1

"軽量のオーディオファイルの比較" - これは特にアクティビティとは何の関係もないようです。だから、おそらく 'Object'(つまり、クラス宣言の' extends'キーワード)を継承している別のJavaクラスに移動してください。アクティビティによってそのオブジェクトのインスタンスが作成され、そのオブジェクトのメソッドが呼び出されますが、コード自体は他の場所に存在します。 IOWでは、あまり複雑ではない操作の場合と同じように、「複雑な操作」についても同じことを行います。 – CommonsWare

答えて

1

これは悪い考えです。あまりにも大きすぎる/複雑すぎる場合、アクティビティを複数のクラスに分割するのは理にかなっています。これらの部分にUIがある場合、それは基本的に断片です。彼らがしなければ、彼らは他のクラスにすべきです。しかし、それらをアクティビティにする理由はありません。彼らは単なるクラスです。

ヘッドレスのアクティビティを持つのが理にかなっている場所はほとんどありません。これらの場所のほとんどは、Androidでコンテキストを開始する必要がある場所ですが、まだ起動する場所がわからない場合があります(たとえば、マニフェストに入れるには複雑すぎるURLルーティングを行うヘッドレスのアクティビティなど)。

0

質問には多くの問題があります。

最初... UIなしのアクティビティの場合、doestnはアクティビティである必要があります。

第2に、クラスとは何か、またクラスを使用する理由を理解する必要があります。

第3に、ロングコードがあると、ロジックが悪い場合は、他のクラスのコード(例:アダプター、ヘルパー、タスクなど)を分離することができます。コンセプトを知っていればどのように正しくseparteを考えてください、もしあなたがもっとあなたを助けることができるコードを投稿してください。

関連する問題