2017-02-07 1 views
0

Я использую Xamarin.Fomrs Проект ПЛК, я пытаюсь показать уведомление, даже приложение закрыто, сейчас он отлично работает, когда приложение запущено, потому что я положить Notification нить на OnStart(), что я должен сделать, чтобы Notification работать, даже если приложение закрытоXamarin.Forms Как показать уведомление, даже приложение закрыто

On The После краткого кода, чтобы быть более четко:

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

} 

ответ

0

Я использую Xamarin. FOMRS PLC Project, я пытаюсь показать уведомление даже приложение закрыто

Вы должны Register a start Service и показать уведомление в этом запуске службы:

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

Примечания: [Service(Exported =true,Name = "demo.winffee.MYSERVICE")] является необходимой частью назвать эту услугу из приложения.

И вызовите службу из другого приложения:

Intent intent = new Intent("demo.winffee.MYSERVICE"); 
intent.PutExtra("msg", "this is the text message from another application"); 
StartService(intent); 
Смежные вопросы