简体   繁体   中英

Android self startup

I wrote a application,I wrote an application. I want it to start a service to connect to the WebSocket server, and then send a notification at an appropriate time,I tried to write a piece of code, but the server log has no connection information,This is my code:


In mainifests.xml:

 <!--permission-->
 <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
 <!--receiver -->
 <receiver android:name=".service.StartNotificationReceiver"
              android:exported="true">
        <intent-filter android:priority="100">
            <action android:name="android.intent.action.BOOT_COMPLETED"/>
            <category android:name="android.intent.category.HOME"/>
        </intent-filter>
  </receiver>
  <!--service-->
  <service android:name=".service.NotificationService"/>

In NotificationService.java:

package com.xxxx.xxxx.service;

public class NotificationService extends Service {

@Nullable
@Override
public IBinder onBind(Intent intent) {

    return null;
}

@Override
public void onCreate() {
    super.onCreate();

}

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    return super.onStartCommand(intent, flags, startId);
}

@Override
public void onDestroy() {
    super.onDestroy();

}

private void createChannel(){
}

private void sendNotification(String title,String content){

}
}

In StartNotificationReceiver.java

package com.ecsoft.zyymaintain.service;

public class StartNotificationReceiver extends BroadcastReceiver {


static final String ACTION = "android.intent.action.BOOT_COMPLETED";

@Override
public void onReceive(Context context, Intent intent) {
    Log.e(“sot”,”onReceive:"+intent.getAction());
    if (ACTION.equals(intent.getAction())){ 
        Intent intentService = new Intent(context, NotificationService.class);
        context.startService(intentService);
    }
}
}

This is my core code,and my application is cant start service when OS startup

I use below code can start the service

<service
        android:name=".AutoStartService"
        android:enabled="true"
        android:exported="true" />

    <receiver
        android:name=".AutoStartReceiver"
        android:enabled="true"
        android:exported="true"
        android:permission="android.permission.RECEIVE_BOOT_COMPLETED" >
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED" />
            <action android:name="android.intent.action.QUICKBOOT_POWERON" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </receiver>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM