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

จะรีเฟรชกิจกรรมเมื่อ IntentService เสร็จสิ้นใน Android ได้อย่างไร


ก่อนเข้าสู่ตัวอย่างเราควรรู้ว่า Intent service คืออะไรใน Android Intent Service จะดำเนินการเบื้องหลังแบบอะซิงโครนัส เมื่อผู้ใช้เรียกใช้ startService() จากกิจกรรม จะไม่สร้างอินสแตนซ์สำหรับแต่ละคำขอและจะหยุดบริการหลังจากดำเนินการบางอย่างในคลาสบริการ มิฉะนั้น เราจำเป็นต้องหยุดบริการโดยใช้ stopSelf()

ตัวอย่างนี้สาธิตวิธีการรีเฟรชกิจกรรมเมื่อ IntentService เสร็จสิ้น

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

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

 
ในโค้ดด้านบนนี้ เราได้ดูข้อความแล้ว เมื่อผู้ใช้ได้รับข้อมูลจาก Intent Service ก็จะอัปเดต

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

แพ็คเกจ com.example.andy.myapplication;นำเข้า android.content.BroadcastReceiver;นำเข้า android.content.Context;นำเข้า android.content.Intent;นำเข้า android.content.IntentFilter;นำเข้า android.os.Bundle;นำเข้า android support.v4.content.LocalBroadcastManager นำเข้า android.support.v7.app.AppCompatActivity นำเข้า android.view.View นำเข้า android.widget.TextView คลาสสาธารณะ MainActivity ขยาย AppCompatActivity { ข้อความ TextView; BroadcastReceiver BroadcastReceiver =BroadcastReceiver ใหม่ () { @ แทนที่โมฆะสาธารณะ onReceive (บริบทบริบทเจตนาเจตนา) { String someValue =Intent.getStringExtra ("someName"); text.setText (ค่าบางอย่าง); } }; @Override ป้องกันโมฆะ onStart () { super.onStart (); IntentFilter IntentFilter =ใหม่ IntentFilter (); IntentFilter.addAction("com.example.andy.myapplication"); LocalBroadcastManager.getInstance (นี้).registerReceiver (เครื่องรับส่งสัญญาณ, ตัวกรองเจตนา); } @Override ป้องกันโมฆะ onCreate (Bundle saveInstanceState) { super.onCreate (savedInstanceState); setContentView(R.layout.activity_main); ข้อความ =findViewById(R.id.text); text.setOnClickListener (View.OnClickListener ใหม่ () { @แทนที่โมฆะสาธารณะ onClick (ดู v) { startService (เจตนาใหม่ (MainActivity.this, service.class)); } }); } @Override ป้องกันโมฆะ onStop() { super.onStop(); LocalBroadcastManager.getInstance(นี้).unregisterReceiver(broadcastReceiver); }}

สร้างคลาสชื่อไฟล์ service.class และเพิ่มรหัสต่อไปนี้ –

แพ็คเกจ com.example.andy.myapplication;import android.app.IntentService;import android.content.Intent;import android.os.IBinder;import android.support.v4.content.LocalBroadcastManager;บริการคลาสสาธารณะขยาย IntentService { บูลีนคงที่สาธารณะควรหยุด =เท็จ; บริการสาธารณะ () { ซูเปอร์ (service.class.getSimpleName ()); } @Override สาธารณะ IBinder onBind (เจตนาเจตนา) { คืนค่า null; } @Override ป้องกันโมฆะบน HandleIntent (เจตนาเจตนา) { เจตนาเจตนา 1 =เจตนาใหม่ ("com.example.andy.myapplication"); Intent1.putExtra("someName", "Tutorialspoint.com"); LocalBroadcastManager.getInstance(นี้).sendBroadcast(intent1); ถ้า (ควรหยุด) { หยุดตัวเอง (); กลับ; } }}

ขั้นตอนที่ 4 − เพิ่มรหัสต่อไปนี้ใน manifest.xml

      <หมวดหมู่ android:name ="android.intent.category.LAUNCHER" />    

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

จะรีเฟรชกิจกรรมเมื่อ IntentService เสร็จสิ้นใน Android ได้อย่างไร

ในผลลัพธ์ข้างต้น จะแสดงหน้าจอเริ่มต้นของแอปพลิเคชัน เมื่อผู้ใช้คลิกที่ "เริ่มบริการ" จะเป็นการเริ่มบริการและอัปเดตการดูข้อความดังที่แสดงด้านล่าง -

จะรีเฟรชกิจกรรมเมื่อ IntentService เสร็จสิ้นใน Android ได้อย่างไร