Apa itu Intent di Android?

347
  • Apa itu Intent di Android?
  • Bisakah seseorang menguraikan contoh?
  • Apa saja jenis Intents, dan mengapa kami menggunakannya?
  • Mengapa Maksud sangat penting di Android?
Nikunj Patel
sumber
Seperti Windows yang merupakan sistem operasi berbasis pesan dan memberitahukan input pengguna ke program dengan mengirim pesan kepada mereka, Android menggunakan niat untuk melakukan itu!
AminM

Jawaban:

486

Sebuah Intent adalah "niat" untuk melakukan tindakan; dengan kata lain,

objek perpesanan yang dapat Anda gunakan untuk meminta tindakan dari komponen aplikasi lain

Intent pada dasarnya adalah pesan untuk mengatakan Anda melakukan atau menginginkan sesuatu terjadi. Bergantung pada tujuannya, aplikasi atau OS mungkin mendengarkannya dan akan bereaksi sesuai dengan itu. Anggap saja sebagai email ledakan ke sekelompok teman, di mana Anda memberi tahu teman Anda John untuk melakukan sesuatu, atau kepada teman-teman yang dapat melakukan X ( "filter maksud" ), untuk melakukan X. Orang lain akan mengabaikan email itu, tetapi John (atau teman yang bisa melakukan X) akan bereaksi.

Untuk mendengarkan maksud siaran (seperti dering telepon, atau SMS diterima), Anda menerapkan penerima siaran , yang akan diteruskan maksudnya. Untuk menyatakan bahwa Anda dapat menangani maksud aplikasi orang lain seperti "ambil gambar", Anda menyatakan filter maksud di file manifes aplikasi Anda .

Jika Anda ingin melepaskan niat untuk melakukan sesuatu, seperti memunculkan dialer, Anda mematikan niat yang mengatakan Anda akan melakukannya.

Chirag
sumber
1
@Chirag Raval Apa perbedaan antara niat dan pendengar tindakan?
mayooran
1
Bisakah tolong jelaskan lagi kalimat terakhir? Jika Anda ingin memecat ..
Shafizadeh
1
Mirip dengan delegasi C #?
Paul
Sebenarnya suatu tindakan berarti Anda dapat memulai satu komponen dari komponen lain menggunakan Intent. Itulah tujuan utamanya.
Sreekanth Karumanaghat
Juga untuk menambahkan ini ... Intent asynchronous.
Sreekanth Karumanaghat
165

Apa itu Intent?

Sebuah Intent pada dasarnya adalah pesan yang lewat di antara komponen (seperti Kegiatan , Jasa, Broadcast Penerima, dan Content Providers ). Jadi, ini hampir setara dengan parameter yang diteruskan ke panggilan API. Perbedaan mendasar antara panggilan API dan komponen pemanggilan melalui niat adalah:

  • Panggilan API bersifat sinkron sementara pemanggilan berbasis niat tidak sinkron.
  • Panggilan API mengikat waktu kompilasi sementara panggilan berbasis niat mengikat waktu berjalan.

Tentu saja, Intents dapat dibuat berfungsi persis seperti panggilan API dengan menggunakan apa yang disebut intents eksplisit, yang akan dijelaskan nanti. Tetapi lebih sering daripada tidak, niat implisit adalah cara untuk pergi dan itulah yang dijelaskan di sini.

Satu komponen yang ingin memohon yang lain harus hanya menyatakan niatnya untuk melakukan pekerjaan. Dan setiap komponen lain yang ada dan telah mengklaim bahwa ia dapat melakukan pekerjaan seperti itu melalui filter-niat , dipanggil oleh platform Android untuk menyelesaikan pekerjaan itu. Ini berarti, tidak ada komponen yang menyadari keberadaan satu sama lain tetapi masih dapat bekerja bersama untuk memberikan hasil yang diinginkan bagi pengguna akhir.

Koneksi tak terlihat antara komponen-komponen ini dicapai melalui kombinasi intents, intent-filter dan platform Android.

Ini mengarah ke kemungkinan besar seperti:

  • Padu-padu atau lebih tepatnya plug and play komponen saat runtime.
  • Mengganti aplikasi Android bawaan dengan aplikasi yang dikembangkan khusus.
  • Tingkat komponen digunakan kembali di dalam dan di seluruh aplikasi.
  • Orientasi layanan ke tingkat paling terperinci, jika boleh saya katakan.

Berikut adalah detail teknis tambahan tentang Maksud dari dokumentasi Android .

Niat adalah deskripsi abstrak dari suatu operasi yang akan dilakukan. Ini dapat digunakan dengan startActivity untuk meluncurkan suatu Kegiatan, broadcastIntent untuk mengirimkannya ke komponen BroadcastReceiver yang tertarik , dan startService (Intent) atau bindService (Intent, ServiceConnection, int) untuk berkomunikasi dengan Layanan Latar Belakang.

Intent menyediakan fasilitas untuk melakukan pengikatan runtime lambat antara kode dalam aplikasi yang berbeda. Penggunaannya yang paling signifikan adalah dalam peluncuran aktivitas, di mana ia dapat dianggap sebagai perekat antar aktivitas. Ini pada dasarnya adalah struktur data pasif yang menyimpan deskripsi abstrak dari suatu tindakan yang harus dilakukan. Bagian informasi utama dalam maksud adalah:

  • action Tindakan umum yang akan dilakukan, seperti ACTION_VIEW, ACTION_EDIT, ACTION_MAIN, dll.
  • data Data yang akan dioperasikan, seperti catatan orang dalam basis data kontak, dinyatakan sebagai Uri.

Belajarlah lagi

mr.boyfox
sumber
4
Saya menghargai penggunaan konsep ilmu komputer dalam penjelasan ini. Ini membuat diskusi lebih konkret, dan terutama bermanfaat bagi pembaca dengan gelar yang kuat dalam ilmu komputer.
Donal Lafferty
49

Maksud adalah cara memberi tahu Android apa yang ingin Anda lakukan . Dengan kata lain, Anda menggambarkan niat Anda. Maksud dapat digunakan untuk memberi sinyal ke sistem Android bahwa suatu peristiwa telah terjadi. Komponen lain di Android dapat mendaftar ke acara ini melalui filter maksud.

Berikut ini adalah 2 jenis niat

1. Maksud Eksplisit

digunakan untuk memanggil komponen tertentu. Ketika Anda tahu komponen mana yang ingin Anda luncurkan dan Anda tidak ingin memberikan kontrol bebas kepada pengguna atas komponen yang digunakan. Misalnya, Anda memiliki aplikasi yang memiliki 2 kegiatan. Aktivitas A dan aktivitas B. Anda ingin memulai aktivitas B dari aktivitas A. Dalam hal ini Anda menetapkan aktivitas penargetan maksud eksplisit B dan kemudian menggunakannya untuk langsung menyebutnya.

2. Maksud Tertentu

digunakan ketika Anda memiliki gagasan tentang apa yang ingin Anda lakukan, tetapi Anda tidak tahu komponen mana yang harus diluncurkan. Atau jika Anda ingin memberi pengguna opsi untuk memilih antara daftar komponen yang akan digunakan. Jika Maksud ini dikirim ke sistem Android, ia mencari semua komponen yang terdaftar untuk tindakan spesifik dan tipe data. Jika hanya satu komponen yang ditemukan, Android memulai komponen secara langsung. Misalnya, Anda memiliki aplikasi yang menggunakan kamera untuk mengambil foto. Salah satu fitur aplikasi Anda adalah Anda memberi kemungkinan kepada pengguna untuk mengirim foto yang telah diambilnya. Anda tidak tahu aplikasi seperti apa yang dimiliki pengguna yang dapat mengirim foto, dan Anda juga ingin memberikan opsi kepada pengguna untuk memilih aplikasi eksternal mana yang akan digunakan jika ia memiliki lebih dari satu. Dalam hal ini Anda tidak akan menggunakan maksud eksplisit.

Maksud eksplisit selalu dikirimkan ke targetnya, apa pun isinya; filter tidak dikonsultasikan. Tetapi maksud implisit dikirim ke komponen hanya jika dapat melewati salah satu filter komponen

Filter Intent

Jika sebuah Intents dikirimkan ke sistem Android, ia akan menentukan aplikasi yang sesuai untuk Intents ini. Jika beberapa komponen telah terdaftar untuk Intents jenis ini, Android menawarkan pilihan kepada pengguna untuk membukanya.

Penentuan ini didasarkan pada IntentFilters. IntentFilters menentukan jenis Intent yang dapat ditanggapi oleh aktivitas, layanan, atau Penerima Siaran Radio. Filter Intent menyatakan kemampuan komponen. Ini menentukan apa yang dapat dilakukan oleh suatu aktivitas atau layanan dan jenis-jenis siaran yang dapat ditangani oleh seorang Penerima. Ini memungkinkan komponen yang sesuai untuk menerima Maksud dari jenis yang dinyatakan. IntentFilters biasanya ditentukan melalui file AndroidManifest.xml. Untuk BroadcastReceiver juga dimungkinkan untuk mendefinisikannya dalam pengkodean. IntentFilters ditentukan oleh kategori, tindakan, dan filter data. Itu juga bisa berisi metadata tambahan.

Jika komponen tidak menetapkan filter Intent, itu hanya bisa dipanggil dengan Intents eksplisit.

Berikut ini adalah 2 cara untuk mendefinisikan filter

1.Manifest file

Jika Anda menetapkan filter maksud dalam manifes, aplikasi Anda tidak harus berjalan untuk bereaksi terhadap maksud yang ditentukan dalam filter itu. Android mendaftarkan filter ketika aplikasi Anda diinstal.

2. Penerima Bus Kota

Jika Anda ingin penerima siaran Anda menerima niat hanya ketika aplikasi Anda sedang berjalan. Maka Anda harus mendefinisikan filter maksud Anda selama waktu berjalan (secara terprogram). Perlu diingat bahwa ini hanya berfungsi untuk penerima siaran.

Varun Bhatia
sumber
12

Setelah menulis satu aktivitas, muncul kebutuhan untuk beralih ke aktivitas lain untuk melakukan tugas lain baik dengan atau tanpa informasi dari aktivitas pertama.

Platform Android memungkinkan transisi melalui Intent Interface.

Kata-kata diambil dari sini: Menggunakan Demo Intent dan saya sarankan Anda untuk melihat contoh ini karena mereka juga telah menyediakan file kode juga. sehingga Anda bisa menggunakannya dan mudah memahami hal yang sama.

Paresh Mayani
sumber
Maksudnya adalah lebih dari transisi antar kegiatan. Akan lebih bermanfaat untuk memberikan gambaran umum.
Vaddadi Kartick
@KartickVaddadi Setuju dengan poin Anda. Ini adalah jawaban saya untuk penggunaan satu Intent!
Paresh Mayani
Paresh, tautan blog.vimviv.com/android/intent-android tidak berfungsi lagi :(
user2060383
9

Intent Android

Android Intent memungkinkan Anda menavigasi dari satu aktivitas Android ke aktivitas lainnya. Dengan contoh, tutorial ini juga berbicara tentang berbagai jenis maksud Android.

Android Intent dapat didefinisikan sebagai objek pesan sederhana yang digunakan untuk berkomunikasi dari satu aktivitas ke aktivitas lainnya.

Maksud menentukan niat Aplikasi. Mereka juga digunakan untuk mentransfer data antar kegiatan.

Intent Android dapat digunakan untuk melakukan 3 tugas berikut:

  1. Buka Aktivitas atau Layanan lain dari Aktivitas saat ini
  2. Pass data antara Aktivitas dan Layanan
  3. Mendelegasikan tanggung jawab ke aplikasi lain. Misalnya, Anda dapat menggunakan Intents untuk membuka aplikasi browser untuk menampilkan URL.

Niat dapat secara luas diklasifikasikan ke dalam 2 kategori. Tidak ada kata kunci untuk kategori ini dan hanya klasifikasi luas tentang bagaimana maksud android digunakan.

Intent Android Eksplisit

Intent Android Intent adalah Intent di mana Anda secara eksplisit mendefinisikan komponen yang perlu dipanggil oleh Sistem Android.

 Intent MoveToNext = new Intent (getApplicationContext(), SecondActivity.class);

Intent Android Tersirat

Maksud Android Tersirat adalah maksud di mana alih-alih mendefinisikan komponen yang tepat, Anda menentukan tindakan yang ingin Anda lakukan. Keputusan untuk menangani tindakan ini diserahkan kepada sistem operasi. OS memutuskan komponen mana yang terbaik untuk dijalankan untuk maksud tersirat. Mari kita lihat sebuah contoh:

    Intent sendIntent = new Intent();
    sendIntent.setAction(Intent.ACTION_SEND);

Untuk informasi lebih lanjut, Anda dapat mengunjungi di bawah ini

http://developer.android.com/reference/android/content/Intent.html

IntelliJ Amiya
sumber
9

Menurut dokumentasi mereka:

Intent adalah objek yang menyediakan runtime mengikat antara komponen yang terpisah (seperti dua aktivitas). Intent mewakili "niat untuk melakukan sesuatu" aplikasi. Anda dapat menggunakan maksud untuk berbagai tugas, tetapi paling sering digunakan untuk memulai aktivitas lain.

Berikut ini tautannya dengan contoh: http://developer.android.com/training/basics/firstapp/starting-activity.html#BuildIntent

Seperti yang dijelaskan dalam dokumen, untuk memulai suatu kegiatan (Anda juga perlu memahami apa kegiatan itu) gunakan maksud seperti di bawah ini

/** Called when the user clicks the Send button */
public void sendMessage(View view) {
    Intent intent = new Intent(this, DisplayMessageActivity.class);
    EditText editText = (EditText) findViewById(R.id.edit_message);
    String message = editText.getText().toString();
    intent.putExtra(EXTRA_MESSAGE, message);
    startActivity(intent);
}
kta
sumber
8

Niat adalah deskripsi abstrak dari operasi yang akan dilakukan. Ini dapat digunakan dengan startActivity untuk meluncurkan suatu Kegiatan, broadcastIntent untuk mengirimkannya ke komponen BroadcastReceiver yang tertarik, dan startService (Intent) atau bindService (Intent, ServiceConnection, int) untuk berkomunikasi dengan Layanan latar belakang.

Untuk lebih jelasnya lihat tautan ini:

1). http://developer.android.com/reference/android/content/Intent.html

2) http://developer.android.com/guide/topics/intents/intents-filters.html

3). http://www.vogella.de/articles/AndroidIntent/article.html

masih banyak lagi artikel yang tersedia.

Dinesh Sharma
sumber
5

Apa itu Intent?

Ini adalah jenis pesan atau informasi yang diteruskan ke komponen. Ini digunakan untuk meluncurkan suatu kegiatan, menampilkan halaman web, mengirim sms, mengirim email dll.

Ada dua jenis niat di android:

Intent Implent Intent
Intent Intent

Niat implisit digunakan untuk memanggil komponen sistem

Contoh

Intent i = newIntent(android.content.Intent.ACTION_VIEW,Uri.parse(“http://www.amazon.com”));

startActivity(i);

Niat eksplisit digunakan untuk memanggil kelas aktivitas.

Contoh

Intent intent = newIntent (this, SecondActivity.class);

startActivity(intent);

Anda bisa membaca lebih lanjut

http://www.vogella.com/tutorials/AndroidIntent/article.html#intents_overview http://developer.android.com/reference/android/content/Intent.html

Mina Fawzy
sumber
2

Intent adalah kelas, yang mengikat informasi untuk melakukan beberapa tindakan.

contoh: meneruskan data satu aktivitas ke aktivitas lain saat pengguna melakukan tindakan seperti itu di

kegiatan saat ini.

madarkife
sumber
1

Dalam tampilan luas, kita dapat mendefinisikan Intent sebagai

Ketika satu aktivitas ingin memulai aktivitas lain, ia menciptakan objek yang disebut Intent yang menentukan aktivitas mana yang ingin dimulainya.

Kartik Goyal
sumber
0

Aplikasi Android dapat berisi nol atau lebih aktivitas. Ketika aplikasi Anda memiliki lebih dari satu aktivitas, Anda sering harus menavigasi dari satu aktivitas ke aktivitas lainnya. Di Android, Anda menavigasi antara aktivitas melalui apa yang dikenal sebagai niat. Anda dapat mengirimkan beberapa data ke aktivitas yang ingin Anda mulai melalui niat, dengan menggunakan putExtra ().

Shaon Hasan
sumber
0

Dari tautan kertasDeep Dive into Android IPC/Binder Framework atAndroid Builders Summit 2013

Maksudnya dipahami dalam beberapa garis kecil namun efektif

  1. Android mendukung bentuk sederhana IPC (komunikasi antar proses) melalui intents
  2. Intent messaging adalah kerangka kerja untuk komunikasi asinkron antara komponen Android (aktivitas, layanan, penyedia konten, penerima siaran)
  3. Komponen-komponen tersebut dapat berjalan di aplikasi yang sama atau lintas yang berbeda (yaitu proses)
  4. Mengaktifkan point-to-point serta mempublikasikan domain pesan berlangganan
  5. Maksud itu sendiri merupakan pesan yang berisi deskripsi operasi yang akan dilakukan serta data yang akan diteruskan ke penerima.

Dari utas ini, jawaban sederhana arsitek android Dianne Hackborn menyatakannya sebagai data containeryang sebenarnya.

Dari sudut pandang arsitektur android :

Intent adalah wadah data yang digunakan untuk komunikasi antar proses. Itu dibangun di atas dari Bindersudut pandang arsitektur android.

Zahan Safallwa
sumber
0

Maksud digunakan untuk memulai aktivitas lain dari satu aktivitas. Pada dasarnya digunakan untuk beberapa tujuan seperti mengirim data ke aktivitas lain dari satu aktivitas, dan untuk tujuan memicu.

Mereka pada dasarnya terdiri dari dua jenis

  1. Maksud tersirat.

  2. Maksud eksplisit.

Sebagai seorang pemula saya tahu banyak, saya pikir ini akan memberikan beberapa ide dasar tentang maksud android

Soorya Prakash
sumber
2
Harap baca tautan ini tentang cara menjawab pertanyaan.
Bonatti