Pandangan pertama ke dalam Aktiviti


Pengenalan kepada bahagian ini:

Dalam bahagian sebelumnya kita telah mempelajari tentang beberapa konsep asas Aktiviti, apakah itu Aktiviti, kitaran hayat Aktiviti, cara memulakan Aktiviti, dsb. Dalam ini bahagian kita Mari terus belajar tentang Aktiviti Seperti yang dinyatakan sebelum ini, Apl biasanya terdiri daripada berbilang Aktiviti Ini melibatkan isu pemindahan data antara berbilang Aktiviti. Selain itu, kami akan menerangkan tentang menghantar koleksi, objek, tatasusunan dan Peta Bit dalam Niat Di sini kami hanya memperkenalkan cara menghantar data asas.


Pemindahan data antara Aktiviti:

1.png

Contoh kod:

Rendering:

2.gif

Muat turun kod: ActivityTest1.zip


2 .Interaksi antara berbilang Aktiviti (yang terakhir diserahkan kembali kepada yang sebelumnya)

3.png

Contoh kod:

Gambar Kesan :

4.gif

Muat turun kod: ActivityTest2.zip


3. Ketahui Aktiviti yang sedang

5.png


4. Tutup semua aktiviti pada bila-bila masa

6.png

Kadang-kadang kita mungkin mempunyai banyak aktiviti yang dibuka, dan tiba-tiba terdapat keperluan sedemikian, yang boleh dimatikan pada halaman tertentu. Semua aktiviti dan keluar dari program! Nah, inilah kaedah untuk menutup semua aktiviti, Hanya gunakan koleksi senarai untuk menyimpan semua aktiviti!

Kod khusus adalah seperti berikut:

Pengumpul Aktiviti Kelas awam {
aktiviti LinkedList<Aktiviti> awam statik = LinkedList<Aktiviti>(); (aktiviti);
}
public static void removeActivity(Aktiviti aktiviti)
{
activities.remove(activity); {
if(!activity.isFinishing())
activity.finish (); 5. Cara untuk keluar sepenuhnya dari Apl

Perkara di atas adalah untuk menutup semua Aktiviti, tetapi kadangkala kita mungkin mahu membunuh keseluruhan Apl Malah tugasan latar belakang terbunuh Jika anda ingin membunuh mereka semua, anda boleh menggunakannya dengan kod berikut:


Kod pelaksanaan:



/**
* Keluar dari aplikasi
*/
public void AppExit(Context context) {
cuba {
ActivityCollector.finishAll();
ActivityManager activityMgr = (ActivityManager) context
.get SystemService(Context.ACTIVITY_SERVICE.> ); .killBackgroundProcesses (context.getPackageName());

System.exit(0);

6 Dua cara untuk keluar dari program dengan mengklik dua kali:

1) Tentukan pembolehubah untuk mengenal pasti sama ada untuk keluar

// Tentukan pembolehubah kepada kenal pasti sama ada mahu keluar dari Exit
boolean statik peribadi isExit = false;
Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg );
isExit = false;
}
};

public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
if (! isExit) {
isExit = true;
Toast.makeText(getApplicationContext(), "Tekan sekali lagi untuk keluar dari program",
Toast.LENGTH_SHORT).show();
/ / Gunakan pengendali untuk melengahkan penghantaran Tukar maklumat status
mHandler.sendEmptyMessageDelayed(0, 2000);
} lain {
exit(this);
}
return false;
}
kembali super.onKeyDown (Kod kunci, acara);}

2) Jimat masa klik:

//Jimat masa klik
private long exitTime = 0;
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
if ((System.currentTimeMillis() - exitTime) > 200 ) {
Toast. makeText(getApplicationContext(), "Klik sekali lagi untuk keluar dari program",
Toast.LENGTH_SHORT).show();
exitTime = System.currentTimeMillis();
} else {
exit();
             }
return false;
}
return super.onKeyDown(keyCode, event);
}

7. Sediakan adegan pemotongan untuk Aktiviti

Adegan pemotongan yang dipanggil adalah untuk menambah beberapa animasi bertukar apabila bertukar kepada Aktiviti lain, seperti fade in dan fade out, zum masuk dan keluar, tolak kiri dan kanan, dsb.! Sudah tentu, kami tidak menerangkan animasi secara terperinci di sini. Akan ada bab khas untuk menerangkannya nanti Kami memberi anda beberapa animasi peralihan yang biasa digunakan Hanya tambahkan fail animasi yang berkaitan pada direktori res/anim, dan kemudian pilih salah satu kaedah berikut. Anda boleh merealisasikan animasi penukaran Aktiviti!

1) Kaedah satu:

7.png

2) Kaedah dua:

Konfigurasikan melalui gaya, ini global, iaitu , semua aktiviti akan memuatkan animasi ini!

Kod pelaksanaan adalah seperti berikut:

① Sesuaikan gaya dalam style.xml:

< ;! -- Animasi lompat Aktiviti Lalai -->
<style name="default_animation" mce_bogus="1" parent="@android:style/Animation.Activity">
<item name= " android:activityOpenEnterAnimation">@anim/default_anim_in</item>
<item name="android:activityOpenExitAnimation">@anim/anim_stay</item>
<Animity name> <Animity name "

Penjelasan: 4 item daripada

masing-masing mewakili:

Apabila Aktiviti A melompat ke Aktiviti B, Aktiviti B memasuki animasi;

Animasi keluar Aktiviti A Aktiviti A apabila melompat ke Aktiviti B;
  • Animasi kemasukan Aktiviti A apabila Aktiviti B kembali ke Aktiviti A
  • Animasi keluar Aktiviti B apabila Aktiviti B kembali ke Aktiviti A
  • ②Kemudian ubah suai AppTheme:

<style name="AppTheme" mce_bogus="1" parent="@android:style/Theme .Cahaya"> ;                                                                                                                                                                              gaya>

③Akhir sekali di bawah tetapan aplikasi:

<aplikasi
android:icon="@drawable/logo"
android:label="@ string/ app_name"
android:theme="@style/AppTheme" >

Baiklah, kesan animasi ditetapkan dalam satu klik sahaja~

3) Lain-lain

Baiklah, sebagai tambahan kepada dua kaedah di atas, anda juga boleh menggunakan TransitionManager untuk mencapainya, tetapi versi yang diperlukan ialah API 19 atau lebih tinggi. Terdapat juga animasi penukaran addOnPreDrawListener, yang agak menyusahkan untuk digunakan dan mungkin tidak sesuai untuk pemula. Saya tidak akan menerangkan butiran di sini Akhir sekali, kami menyediakan beberapa pakej kesan animasi yang biasa digunakan. Hanya pilih kesan khas yang diperlukan dan tambahkannya pada projek. Animasi peralihan aktiviti yang biasa digunakan.zip


8 Had pemindahan data Bundle

Apabila menggunakan Bundle untuk memindahkan data, sila ambil perhatian bahawa saiz Bundle adalah terhad< MB, jika lebih besar daripada nilai ini Pengecualian TransactionTooLargeException akan dilaporkan! ! !


9 Gunakan baris arahan untuk melihat arahan semua aktiviti semasa:

Gunakan arahan berikut, dengan syarat anda telah mengkonfigurasi pembolehubah persekitaran untuk SDK: aktiviti adb shell dumpsys


10 Cara menetapkan skrin penuh Aktiviti:

1) ActionBar menyembunyikan kod

dalam Activity Call getActionBar.hide(); dalam kaedah onCreate

2) Tetapkan

requestWindowFeature(Window.FEATURE_NO_TITLE) melalui requestWindowFeature; Kod ini perlu dipanggil sebelum setContentView (), jika tidak, ralat akan dilaporkan! ! !

Nota: Letakkan requestWindowFeature(Window.FEATURE_NO_TITLE);

3) Tetapkan tema = @android:style/Theme.NoTitleBar.FullScreen

dalam teg Aktiviti yang memerlukan skrin penuh melalui tema


daripada AndroidManifest.xml

11 Penggunaan kaedah onWindowFocusChanged:

Mari kita lihat pengenalan rasmi kepada kaedah ini:

Iaitu, apabila Aktiviti mendapat atau kalah fokus, kaedah ini akan dipanggil semula! Jika kita ingin memantau sama ada Aktiviti dimuatkan, kita boleh menggunakan kaedah ini~ Jika anda ingin mengetahui lebih lanjut, anda boleh pergi ke artikel ini: Pengenalan kepada pencetus onWindowFocusChanged


12. Tentukan Aktiviti gaya dialog

Dalam beberapa kes, kita mungkin memerlukan. Tetapkan Aktiviti kepada gaya dialog Aktiviti biasanya menggunakan skrin penuh. Dialog mengambil sebahagian daripada skrin! Ia juga mudah untuk dilaksanakan!

Tetapkan tema Aktiviti secara langsung:

android:theme="@android:style/Theme.Dialog"

Itu sahaja, sudah tentu anda boleh menetapkan tajuk dan ikon kecil!


//Tetapkan ikon kecil di penjuru kiri sebelah atas
requestWindowFeature(Window.FEATURE_LEFT_ICON);
setContentView(R.layout.main);
getWindow( ).setFeatureDrawableResource( Window.FEATURE_LEFT_ICON, android.R.drawable.ic_lion_icon);
//Set text:
setTitle(R.string.actdialog_title); //Tetapkan dalam kod XML: android:label="@ string/activity_dialog"

Ringkasan bahagian ini:

Baiklah, dalam bahagian ini kita telah mempelajari beberapa masalah biasa dalam pembangunan sebenar Aktiviti. Saya percaya ia akan membantu dalam pembangunan sebenar semua orang! Dalam bahagian seterusnya, kita akan mempelajari konsep timbunan Activty dan empat mod pemuatan! Nantikan~Terima kasih~