我要當引導運行應用程序服務器允許接收消息的任何時間如何在啓動時開始應用,並允許運行像WhatsApp的
不顯示應用
這段代碼的問題,當啓動顯示通知兩次只 但我想收到消息的任何時間
這是「機器人:出口」重要的是,用什麼
代碼AndroidManifest
<service
android:name=".appService"
android:exported="true"
android:enabled="true">
</service>
<receiver
android:name=".ServiceStarterBoot"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.QUICKBOOT_POWERON" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</receiver>
代碼廣播接收器
public class ServiceStarterBoot extends BroadcastReceiver {
private Context context ;
@Override
public void onReceive(Context context1, Intent intent) {
this.context = context1;
if ("android.intent.action.BOOT_COMPLETED".equals(intent.getAction())) {
Intent serviceLauncher = new Intent(context, appService.class);
context.startService(serviceLauncher);
}}
代碼服務
public class appService extends Service {
@Override
public void onCreate() {
super.onCreate();
lood();
}
@Nullable
@Override
public IBinder onBind(Intent intent) {
throw new UnsupportedOperationException("Not yet implemented");
//return mBinder;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Toast.makeText(this, "onStartCommand", Toast.LENGTH_SHORT).show();
return super.onStartCommand(intent, flags, startId);
}
private void lood(){
SystemClock.sleep(3000);
Runnable runnable = new Runnable() {
public void run() {
boolean p= true ;
while(p) {
SystemClock.sleep(5000);
showNotification();
}
}
};
Thread mythread = new Thread(runnable);
mythread.start();
}
請幫助 感謝
啓動後只顯示通知兩次,我該怎麼辦? – emad
這是正常行爲。你的服務的任務是製作一個線程。服務完成它然後任務完成。您必須實現服務的偵聽器。例如狀態改變監聽器。當一個狀態改變時。該服務將獲得狀態並激發您的方法。 – Dareyou
程序打開並且服務器正在運行時沒有問題, 問題是服務器在啓動時運行 – emad