2016-08-14 61 views
1

我有一个经常上传设备位置到服务器的应用程序。即使应用程序关闭,也要继续进行通知

上传位置是在重复报警中完成的,即使用户退出应用程序并从最近的应用程序列表中清除,它也能正常工作。

用户可以通过按下应用程序上的按钮来停止应用程序上传位置。

我需要向用户显示正在进行的通知,指示该应用程序处于活动状态,并且当前正在上传位置。我使用了一个正在进行的通知(NotificationBuilder.setOngoing(true)),但是一旦用户退出应用程序并将其从最近的应用程序中删除,该通知就会消失。

我知道保持通知应该是可能的,因为有这样做的应用程序。例如,uTorrent应用程序和WiFi ADB应用程序可以做到这一点。

有没有人知道即使应用程序关闭时也能保留通知的方法?

+0

你能有一个服务在后台运行? – Eenvincible

回答

0

启动粘性服务。在用户(强制)从最近列表中删除应用程序时关闭应用程序后立即重新启动该服务。服务也是在启动设备后直接启动的,所以粘性通知永远不会消失。请记住,粘性通知永不消失可能会使一些用户感到不安。

OngoingNotificationService.class:

public class OngoingNotificationService extends Service { 

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

    } 

    @Override 
    public void onCreate() { 
     // Check if notification should be shown and do so if needed 

    } 
} 

OngoingNotificationServiceStarter.class:

public class OngoingNotificationServiceStarter extends BroadcastReceiver { 

    @Override 
    public void onReceive(Context context, Intent intent) { 
     Intent i = new Intent(context, OngoingNotificationService.class); 
     context.startService(i); 

    } 
} 

的AndroidManifest.xml:

<manifest> 

    ... 

    <application> 

     ... 

     <service android:name=".OngoingNotificationService" /> 

     <receiver android:name=".OngoingNotificationServiceStarterr"> 
      <intent-filter> 
       <action android:name="android.intent.action.BOOT_COMPLETED" /> 
      </intent-filter> 
     </receiver> 

    </application> 

</manifest> 
相关问题