検索

ホームページ  >  に質問  >  本文

android - 实际项目中Activity传递数据最佳实践是?

有个代码优化的问题,假设现在项目有4个Activity依次跳转:A》B》C》D

  1. 有一些公共数据 B,C,D都需要,是用Intent依次传递,还是直接写成public static,或者更好的方法?

  2. 现在D界面进行了一些操作,希望返回到A时(注意:不是D直接跳到A,而是D,C,B回退到A)刷新界面。除了用标志位,更优的方法是?

来,畅所欲言吧

巴扎黑巴扎黑2769日前476

全員に返信(3)返信します

  • 阿神

    阿神2017-04-18 09:19:15

    イベントバスを使用するライブラリ。Eventbus
    の使用をお勧めします。利点:

    1. 渡されたデータのシリアル化は必要ありません

    2. オブザーバー パターンを使用して

    3. を分離します

    返事
    0
  • PHP中文网

    PHP中文网2017-04-18 09:19:15

    1. 定数の場合は、それを具体的に格納するための Constant クラスを作成できます。
    2. startActivityForResult を通じてアクティビティを順番に開くことができます。戻ったときに、Intent、requestCode、resultCode のデータに基づいて onActivity で判断して転送できますが、コードの更新が十分ではありません。

    返事
    0
  • 天蓬老师

    天蓬老师2017-04-18 09:19:15

    このシナリオはログインと登録のシナリオに非常に似ています。ログイン ページをクリックし、パスワードを忘れて操作を完了し、直接戻ってログインを完了します。

    1. BC が復帰時にインタラクション要件がなく、A に対して特別な要件がない場合は、launchModesingleInstance または singleTop に直接設定します (前者とは処理が異なります)。 🎜 >実現しましょうActivity#onNewIntent(...)

    2. インタラクション要件がある場合は、レベルごとに返してください。

    さらに、EventBus ライブラリを直接使用することもできます (

    EventBusotto はすべて使用できます。RxBus のシナリオでは EventBus の使用を検討することもできます)。ただし、次の点を考慮する必要があります。ブロックされた場合、システムリサイクル後の処理シナリオ。LocalBroadcastManager

    追伸、静的グローバル メソッドの必要性をなくすだけです....

    返事
    0
  • キャンセル返事