Saya memiliki skenario berikut dalam aplikasi saya. Tidak ada UI di aplikasi saya; alih-alih ada Layanan yang mulai saat boot dan akan terus berjalan.
Bagaimana cara mengonfigurasi file manifes saya tanpa Aktivitas utama? Bisakah saya meluncurkan aplikasi saya tanpa Aktivitas apa pun? Dan saat meluncurkan aplikasi saya, Layanan saya harus dimulai. Apakah ini mungkin?
Saya tidak ingin membuat Aktivitas tembus cahaya untuk memulai Layanan.
Jawaban:
Anda mengatakan Anda tidak ingin menggunakan Aktivitas tembus cahaya, tetapi sepertinya itu cara terbaik untuk melakukannya:
Theme.Translucent.NoTitleBar
.setContentView()
.onCreate()
, mulai Layanan Anda denganstartService()
.finish()
setelah Anda memulai Layanan.Dengan kata lain, Aktivitas Anda tidak harus terlihat; itu hanya dapat memastikan Layanan Anda berjalan dan kemudian keluar, yang terdengar seperti yang Anda inginkan.
Saya sangat menyarankan untuk menampilkan setidaknya pemberitahuan Toast yang menunjukkan kepada pengguna bahwa Anda meluncurkan Layanan, atau bahwa Layanan sudah berjalan. Pengalaman pengguna yang sangat buruk memiliki ikon peluncur yang tampaknya tidak melakukan apa-apa saat Anda menekannya.
sumber
Ya, Anda dapat melakukannya dengan hanya membuat
BroadcastReceiver
yang memanggil AndaService
saat Aplikasi Anda boot. Inilah jawaban lengkap yang saya berikan.Android - Mulai layanan saat boot
Jika Anda tidak menginginkan ikon / peluncur apa pun untuk Aplikasi Anda, Anda juga dapat melakukannya, jangan buat Aktivitas apa pun dengan
<intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter>
Cukup nyatakan milik Anda
Service
seperti yang dideklarasikan secara normal.sumber
Service
boot, tetapi ingin tahu bagaimana tidak memiliki utamaActivity
, tetapi cukup pastikan bahwaService
itu berjalan ketika ikon peluncur ditekan.Alasan membuat Aplikasi tanpa aktivitas atau layanan bisa jadi karena membuat aplikasi Widget Layar Beranda yang tidak perlu dimulai.
Setelah Anda memulai sebuah proyek, jangan membuat aktivitas apa pun. Setelah Anda membuat proyek, tekan saja. Studio Android akan berkata
No default activity found
.Klik Edit Konfigurasi (Dari menu Jalankan ) dan di bagian opsi Peluncuran, atur nilai Peluncuran ke Tidak Ada . Kemudian klik ok dan jalankan Aplikasi.
( Karena tidak ada aktivitas peluncur, Tidak ada aplikasi yang akan ditampilkan di menu Aplikasi. ).
sumber
Android Studio Versi 2.3
Anda dapat membuat Layanan tanpa Aktivitas Utama dengan mengikuti beberapa langkah mudah. Anda akan dapat menginstal aplikasi ini melalui Android Studio dan men-debugnya seperti aplikasi biasa.
Pertama, buat proyek di Android Studio tanpa aktivitas. Kemudian buat kelas Service Anda dan tambahkan layanan ke AndroidManifest.xml Anda
<application android:allowBackup="true" android:label="@string/app_name" android:icon="@mipmap/ic_launcher" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <service android:name="com.whatever.myservice.MyService"> <intent-filter> <action android:name="com.whatever.myservice.MyService" /> </intent-filter> </service> </application>
Sekarang, di drop down di samping tombol "Run" (panah hijau), pergi ke "edit konfigurasi" dan di dalam "Launch Options" pilih "Nothing". Ini akan memungkinkan Anda untuk menginstal Layanan Anda tanpa Android Studio mengeluh karena tidak memiliki Aktivitas Utama.
Setelah diinstal, layanan TIDAK akan berjalan tetapi Anda dapat memulainya dengan perintah adb shell ini ...
Dapat memeriksa itu berjalan dengan ...
ps | grep whatever
Saya belum mencobanya, tetapi Anda mungkin dapat membuat Android Studio secara otomatis memulai layanan juga. Ini akan dilakukan di menu "Edit Konfigurasi".
sumber