2017-02-07 15 views
0

Ich benutze Xamarin.Fomrs SPS-Projekt, ich versuche, eine Benachrichtigung zu zeigen, sogar App geschlossen ist, im Moment funktioniert es gut, wenn App läuft, weil ich setze den Notification Thread auf OnStart(), was ich tun soll Benachrichtigung arbeiten zu machen, auch wenn App geschlossen istXamarin.Forms Wie man eine Benachrichtigung zeigt, wenn App geschlossen ist

auf der A kurzen Code nach deutlicher zu sein:

namespace X 
{ 
    public class App : Application 
    { 
     INotificationService service;   
    } 


    void CheckNotifications() 
    { 
     service = DependencyService.Get<INotificationService>(); 
     service.Notify (message); 
     System.Threading.Thread.Sleep (1000 * 60);   
    } 

    protected override void OnStart() 
    {   
      var threadStart = new System.Threading.ThreadStart (CheckNotifications); 
      var thread = new System.Threading.Thread (threadStart); 
      thread.IsBackground = true; 
      thread.Start(); 
    } 

} 

Antwort

0

I Xamarin verwenden. Fomrs PLC Projekt, ich versuche, eine Benachrichtigung sogar zu zeigen App

geschlossen

Sie müssen Register a start Service und zeigen eine Meldung in dieser Startservice:

[Service(Exported =true,Name = "demo.winffee.MYSERVICE")] 
[IntentFilter(new string[] {"demo.winffee.MYSERVICE"})] 
public class MyService : Service 
{ 
    public override IBinder OnBind(Intent intent) 
    { 
     return null; 
    } 

    [return: GeneratedEnum] 
    public override StartCommandResult OnStartCommand(Intent intent, [GeneratedEnum] StartCommandFlags flags, int startId) 
    { 
     string msg=intent.GetStringExtra("msg"); 
     if (!String.IsNullOrEmpty(msg)) { 
      Toast.MakeText(this, msg, ToastLength.Short).Show(); 
     } 
     return base.OnStartCommand(intent, flags, startId); 
    } 

    public override void OnDestroy() 
    { 
     base.OnDestroy(); 
    } 
} 

Hinweise: [Service(Exported =true,Name = "demo.winffee.MYSERVICE")] notwendiger Teil ist diese Dienstleistung aus Anwendung aufrufen.

und der Service aus einer anderen Anwendung aufrufen:

Intent intent = new Intent("demo.winffee.MYSERVICE"); 
intent.PutExtra("msg", "this is the text message from another application"); 
StartService(intent); 
Verwandte Themen