Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Android

จะใช้ Singleton กับ Global Context ใน Android ได้อย่างไร?


ก่อนจะยกตัวอย่าง เราควรรู้ว่าลายออกแบบซิงเกิลตันคืออะไร ซิงเกิลตันคือรูปแบบการออกแบบที่จำกัดการสร้างอินสแตนซ์ของคลาสไว้เพียงอินสแตนซ์เดียวเท่านั้น การใช้งานที่โดดเด่น ได้แก่ การควบคุมการทำงานพร้อมกัน และการสร้างจุดศูนย์กลางในการเข้าถึงสำหรับแอปพลิเคชันเพื่อเข้าถึงที่เก็บข้อมูล

ตัวอย่างนี้สาธิตวิธีใช้ Singleton กับ Global Context ใน Android

ขั้นตอนที่ 1 − สร้างโครงการใหม่ใน Android Studio ไปที่ไฟล์ ⇒ โครงการใหม่และกรอกรายละเอียดที่จำเป็นทั้งหมดเพื่อสร้างโครงการใหม่

ขั้นตอนที่ 2 − เพิ่มรหัสต่อไปนี้ใน res/layout/activity_main.xml

<รุ่นก่อนหน้า>การเข้ารหัส "1.0">"utf-8"?>"https://schema.android.com/apk/res/android" xmlns:tools>"https://schema.android.com/tools" android:layout_width>"match_parent" android:layout_height>"match_parent" tools:context>".MainActivity" android:orientation>"vertical"> <ปุ่ม android:id>"@+id /show" android:text>"เริ่มกล่องโต้ตอบใน singleTone" android:layout_width>"wrap_content" android:layout_height>"wrap_content" />

ในโค้ดข้างต้น เราได้นำปุ่ม เมื่อผู้ใช้คลิกที่ปุ่มแสดง จะแสดงขนมปังปิ้งโดยใช้บริบทส่วนกลาง

ขั้นตอนที่ 3 − เพิ่มรหัสต่อไปนี้ใน src/MainActivity.java

แพ็คเกจ com.example.andy.myapplication;นำเข้า android.os.Bundle;นำเข้า android.support.v7.app.AppCompatActivity;นำเข้า android.view.View;นำเข้า android.widget.Button;นำเข้า android.widget.Toast;คลาสสาธารณะ MainActivity ขยาย AppCompatActivity { แสดงปุ่ม; singleTonExample singletoneตัวอย่าง; @Override ป้องกันโมฆะ onCreate (Bundle saveInstanceState) { super.onCreate (savedInstanceState); setContentView(R.layout.activity_main); แสดง =findViewById(R.id.show); singletonexample =singleTonExample.getInstance (); singletoneexample.init(getApplicationContext()); show.setOnClickListener (View.OnClickListener ใหม่ () { @แทนที่โมฆะสาธารณะ onClick (ดู v) { Toast.makeText (singleTonExample.get (), "แสดงพร้อมเนื้อหาทั่วโลก", Toast.LENGTH_LONG).show (); } }); }}

ในโค้ดด้านบนนี้ เราได้ใช้ singleTonExample เป็นคลาสซิงเกิลตัน ดังนั้นให้สร้างการโทรเป็น singleTonExample.java และเพิ่มรหัสต่อไปนี้-

แพ็คเกจ com.example.andy.myapplication;นำเข้า android.app.Dialog;นำเข้า android.content.Context;นำเข้า android.view.Window;คลาสสาธารณะ singleTonExample { บริบทแอพบริบทส่วนตัว; ไดอะล็อกส่วนตัว singleTonExample ส่วนตัวสุดท้าย singleTonExample ourInstance> new singleTonExample(); init โมฆะสาธารณะ (บริบทบริบท) { if (appContext>> null) { this.appContext> บริบท; } } บริบทส่วนตัว getContext () { return appContext; } บริบทคงที่สาธารณะ get() { return getInstance().getContext(); } singleTonExample getInstance() ซิงโครไนซ์สาธารณะแบบคงที่สาธารณะ { ส่งคืนอินสแตนซ์ของเรา; } ส่วนตัว singleTonExample() { }}

มาลองเรียกใช้แอปพลิเคชันของคุณกัน ฉันคิดว่าคุณได้เชื่อมต่ออุปกรณ์มือถือ Android จริงกับคอมพิวเตอร์ของคุณ ในการรันแอพจาก android studio ให้เปิดไฟล์กิจกรรมของโปรเจ็กต์แล้วคลิกไอคอน Run จากแถบเครื่องมือ เลือกอุปกรณ์มือถือของคุณเป็นตัวเลือก จากนั้นตรวจสอบอุปกรณ์มือถือของคุณซึ่งจะแสดงหน้าจอเริ่มต้นของคุณ –

จะใช้ Singleton กับ Global Context ใน Android ได้อย่างไร?

ตอนนี้คลิกที่ปุ่มด้านบนจะแสดงขนมปังโดยใช้บริบททั่วโลกดังที่แสดงด้านล่าง –

จะใช้ Singleton กับ Global Context ใน Android ได้อย่างไร?