我希望当启动运行应用服务器允许随时接收消息时
没有显示申请
此引导时的代码问题仅显示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();
}
请帮忙 感谢
答案 0 :(得分:0)
你必须使你的服务变得粘:
Service.START_STICKY
然后它是无限的,并且在因任何原因被OS杀死时重启。
它甚至在启动操作系统时启动,并且用户不打开应用程序。
最好的问候。
答案 1 :(得分:0)
伪代码:
onStartCommand(..){
...
//例。 wifilisterner Wifilistener WF = new Wifilistener(接口yourInterfaceCallBackMethod);
}
像这样的东西。