如何在启动时启动应用程序并允许像whatsapp

时间:2017-09-30 15:03:32

标签: android server broadcastreceiver

我希望当启动运行应用服务器允许随时接收消息时

没有显示申请

此引导时的代码问题仅显示Notification两次 但我希望随时收到消息

这是" android:导出"重要的,使用了什么

代码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>

代码BroadcastReceiver

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();
}

请帮忙 感谢

2 个答案:

答案 0 :(得分:0)

你必须使你的服务变得粘:

Service.START_STICKY

然后它是无限的,并且在因任何原因被OS杀死时重启。

它甚至在启动操作系统时启动,并且用户不打开应用程序。

最好的问候。

答案 1 :(得分:0)

伪代码:

onStartCommand(..){

...

//例。 wifilisterner Wifilistener WF = new Wifilistener(接口yourInterfaceCallBackMethod);

}

像这样的东西。