Dalam IntentExamples proyek saya, saya memiliki filter ini, terkait dengan layanan.
<intent-filter>
<action android:name="biz.rpcodes.apps.intentexamples.START_SERVICE" />
</intent-filter>
Di proyek lain, UseExampleService, saya punya sesuatu seperti:
Intent i = new Intent("biz.rpcodes.apps.intentexamples.START_SERVICE");
startService(i);
... dipandu oleh jawaban ini: https://stackoverflow.com/a/16439551/5181778
Pertanyaan saya adalah: Bagaimana cara terbaik saya mengelola Intent filter Strings ini di beberapa proyek? Solusi terbaik yang saya miliki sekarang adalah membuat kelas yang saya salin dan tempelkan dari proyek Layanan ke proyek lain, yaitu:
class ExampleServiceIntents {
public static final String ExampleServiceIntents.START_SERVICE =
"biz.rpcodes.apps.intentexamples.START_SERVICE";
...
Sementara saya dapat mengimpor kelas Layanan sendiri new Intent(this, ExampleService.class)
, saya ingin menjaga kelas Layanan di proyek mereka sendiri.
java
project-management
android
Rick Page
sumber
sumber
Service
tidak diinstal. Dan Anda selalu dapat membuat perpustakaan yang berisi konstanta ini dan kemudian menggunakan perpustakaan itu di setiap proyek.Jawaban:
Pustaka Bersama Android atau tautan simbolik yang tergantung pada sistem operasi.
Opsi 1: Perpustakaan Android Bersama
Perpustakaan Android resmi diimpor ke setiap proyek.
Kelebihan : Jenis keamanan. Cross-platform dan bekerja dengan kontrol sumber. Dukungan pemeriksaan sintaks dan editor penuh.
Cons : Masih agak menjengkelkan untuk mengimpor proyek sebagai pustaka melalui editor saat ini (Android Studio atau Eclipse with ADT) karena mereka tidak menawarkan antarmuka yang sangat baik untuk melakukan ini. Jika Anda harus sering melakukan tugas ini tetapi tidak terlalu sering Anda mengingat semua langkah setiap kali, maka ini mungkin tidak sepadan dengan usaha. Tetapi jika ini hanya satu atau dua kali, maka Anda tidak perlu melakukannya lagi, itu tidak terlalu buruk.
Opsi 2 Tautan Simbolik
Secara simbolis menautkan file sumber umum di setiap proyek. Kemudian kedua proyek akan melihat file dan mengubahnya, sehingga mereka dapat tetap sinkron.
Pro : Jauh lebih mudah diimplementasikan.
Cons : Tautan simbolik tidak bekerja dengan baik dengan alat kontrol sumber. Bukan lintas platform (untuk pengembangan) karena tautan simbolik sangat berbeda dari satu sistem operasi ke sistem operasi lainnya. Tidak begitu jelas bagi pengembang baru yang datang ke proyek yang perubahan di satu secara otomatis dibagikan dengan yang lain.
Oleh karena itu, karena opsi tautan simbolik memiliki lebih banyak kontra daripada pro, saya biasanya akan merekomendasikan solusi perpustakaan bersama untuk sebagian besar proyek. Tetapi, jika proyek khusus Anda tidak memerlukan fitur dari kolom kontra dari tautan simbolik, maka itu mungkin lebih mudah. Tergantung.
PS: Ada opsi ketiga yang mengerikan untuk memiliki aplikasi Android ketiga penuh yang menawarkan Penyedia data Android yang menawarkan nilai-nilai string. Tetapi pada saat itu Anda perlu berkomunikasi dengan aplikasi itu dengan string khusus yang perlu dibagikan juga, jadi Anda hanya menambahkan langkah abstraksi tetapi belum menyelesaikan masalah.
sumber