Android:
public class LocationService extends Service {
@Override
public void onStart(Intent intent, int startId) {
super.onStart(intent, startId);
startActivity(new Intent(this, activity.class));
}
}
Saya meluncurkan layanan ini dari Activity
Dalam Activity
jika kondisi memenuhi memulai
startService(new Intent(WozzonActivity.this, LocationService.class));
dari yang saya LocationService
sebutkan di atas tidak dapat diluncurkan Activity
, bagaimana saya bisa mendapatkan konteks saat ini berjalan Activity
di kelas layanan?
Saya memiliki masalah yang sama, dan ingin memberi tahu Anda bahwa tidak ada yang di atas bekerja untuk saya. Apa yang berhasil untuk saya adalah:
dan dalam satu subclass saya, disimpan dalam file terpisah saya harus:
Semua jawaban lain memberi saya a
nullpointerexception
.sumber
Hal lain yang layak disebut: sementara jawaban di atas bekerja dengan baik ketika tugas kita ada di latar belakang, satu-satunya cara saya bisa membuatnya bekerja jika tugas kita (yang dibuat dari layanan + beberapa kegiatan) ada di latar depan (yaitu salah satu kegiatan kita terlihat kepada pengguna) seperti ini:
Saya tidak tahu apakah ACTION_VIEW atau FLAG_ACTIVITY_NEW_TASK dapat digunakan di sini. Kunci sukses adalah
dan tentu saja FLAG_ACTIVITY_REORDER_TO_FRONT untuk tidak membuat instance aktivitas lagi. Semoga berhasil!
sumber
seseorang tidak dapat menggunakan
Context
dariService
; bisa mendapatkan (paket) yangContext
sama:sumber
FLAG_ACTIVITY_NEW_TASK
benderaBergantian,
Anda dapat menggunakan kelas Aplikasi Anda sendiri dan menelepon dari mana pun Anda butuhkan (terutama non-kegiatan).
Dan daftarkan kelas Aplikasi Anda:
Lalu hubungi:
sumber
context = getApplicationContext();
kecontext = this;
Jika Anda perlu menghitung ulang suatu Aktivitas yang ada di bacgrounde, dari layanan Anda, saya sarankan tautan berikut. Intent.FLAG_ACTIVITY_NEW_TASK bukan solusi.
https://stackoverflow.com/a/8759867/1127429
sumber