android - 实际项目中Activity传递数据最佳实践是?
巴扎黑
巴扎黑 2017-04-18 09:17:15
0
3
471

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

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

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

来,畅所欲言吧

巴扎黑
巴扎黑

membalas semua(3)
阿神

Perpustakaan yang menggunakan bas acara, disyorkan untuk menggunakan Eventbus
Faedah:

  1. Siri data yang diluluskan tidak diperlukan

  2. Gunakan corak pemerhati untuk memisahkan

Ty80

1 Jika ia adalah pemalar, anda boleh menulis kelas Constant untuk menyimpannya secara khusus.
2. Anda boleh membuka aktiviti mengikut urutan melalui startActivityForResult Apabila kembali, anda boleh menilai dan memindahkannya dalam onActivity berdasarkan data dalam Intent, requestCode dan resultCode, tetapi kod itu pasti tidak cukup menyegarkan.

Peter_Zhu

Keperluan tidak begitu jelas Senario ini sangat serupa dengan senario log masuk dan pendaftaran: klik pada halaman log masuk, lupakan kata laluan, kemudian selesaikan operasi dan kembali terus untuk melengkapkan log masuk.

  1. Jika BC tidak mempunyai sebarang keperluan interaksi semasa pemulangan dan tidak mempunyai keperluan khas untuk A, maka tetapkan terus launchMode kepada singleInstance atau singleTop (pemprosesan berbeza daripada yang terdahulu) digabungkan dengan Activity#onNewIntent(...)Mari kita laksanakan

  2. Jika anda mempunyai sebarang keperluan interaksi, cuma kembalikan tahap demi tahap.

Selain itu, anda juga boleh terus menggunakan pustaka EventBus (EventBus, otto, RxBus semuanya boleh diterima. Anda juga boleh mempertimbangkan untuk menggunakan EventBus dalam senario di mana LocalBroadcastManager), tetapi anda perlu mempertimbangkannya sekiranya A sedang Memproses senario selepas kitar semula sistem.

p.s. Hanya hapuskan keperluan untuk kaedah global statik....

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan