android - 我能否实现一个不需主动传入上下文的dialog?
阿神
阿神 2017-04-18 09:16:44
0
6
599

既然我可以通过注册activity生命周期回调的方法在任意地方获取到最后一个onresume的activity,
那么我是否可以创建一个工具类,工具类利用这个activity来构造dialog呢?
这样做有什么坏处呢?
我现在用一个toast工具类,在工具类中直接使用了application的context,这样做可以吗?

阿神
阿神

闭关修行中......

membalas semua(6)
巴扎黑

Ya, anda boleh, tetapi mengapa? Hanya merangkum kelas alat dialog dan lulus aktiviti. Bagi roti bakar, menggunakan applicationContext adalah idea yang baik.

Peter_Zhu

Bina Dialog dan teruskan konteks Aktiviti kepadanya Anda tidak perlu bersusah payah dengan panggilan balik atau apa-apa seperti itu. Anda boleh merujuk kepada perpustakaan alat berpakej orang lain untuk melihat idea orang lain.

洪涛

Cukup bijak, anda boleh menggunakan aktiviti sebagai dialog, cuma tetapkan temanya kepada dialog, seperti kata tapak web rasmi

洪涛

Pada asalnya, dialog peringkat sistem adalah sangat mudah Anda hanya perlu lulus dalam Konteks aplikasi untuk melaksanakan kotak pop timbul Walau bagaimanapun, disebabkan penyesuaian yang berlebihan oleh pelbagai pengeluar (saya menemui penyesuaian yang menjijikkan bagi pop peringkat sistem. -up, versi yang sama , ubah suainya sebaik sahaja ia dikemas kini), jadi sebaiknya gunakan aktiviti dalam format dialog tersuai sebagai kotak pop timbul untuk melaksanakan semua perkara di atas Pada masa ini, banyak syarikat melakukan ini, seperti tolakan merpati pembawa tencent, iaitu bagaimana ia dilakukan ia boleh menjamin pembukaan yang berjaya tanpa kesakitan penyesuaian.

Peter_Zhu

Untuk Dialog Android, anda perlu lulus Konteks tidak kira apa. Aktiviti Lulus sebenarnya bersamaan dengan Konteks lulus. Tidak boleh menggunakan Konteks Aplikasi tambahan pula, Konteks statik tidak disyorkan dan boleh menyebabkan kebocoran memori.

Walau bagaimanapun, anda boleh menyembunyikan atau memudahkan proses ini melalui kaedah seperti suntikan kebergantungan.

巴扎黑

Anda tidak boleh (walaupun saya ingin mengatakan saya tidak mengesyorkannya)
Membina anda telah melaksanakannya, mari kita teka apa yang akan berlaku.

  1. Permintaan rangkaian telah dihantar, dan kemudian halaman telah ditamatkan, tetapi permintaan itu tidak dibatalkan Apabila permintaan dikembalikan, kotak dialog muncul Bagaimana untuk menerangkan Dialog ini Dialog, dan operasi mempunyai data, ini diproses Di manakah saya harus meletakkan kod tersebut Anda boleh berjaya meletakkan data ini dalam contoh Dialog dan mencipta kelas dalaman baharu Tahniah, memori Aktiviti yang baru sahaja ditamatkan telah bocor

  2. Bagaimana untuk menyekat orang daripada menggunakan Dialog universal? Ia boleh dimainkan di mana-mana dan struktur kod boleh dikekalkan?

  3. Untuk projek kecil, anda boleh terus membuat BaseActivity mengikut keperluan anda, mengendalikan struktur kod dan muncul kotak dialog tanpa banyak masalah.

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