3
私は新しいクラスライブラリ(Xamarinフォーム)を作成したフォーム。サービス(注 - ないバウンドサービス期待 - 乾杯のアプリケーションが起動したときに表示されるように/停止: -は、Visual Studioで
namespace AndroidBatteryService
{
public class AndroidBatteryService : Service
{
public AndroidBatteryService()
{
}
[return: GeneratedEnum]
public override StartCommandResult OnStartCommand(Intent intent, [GeneratedEnum] StartCommandFlags flags, int startId)
{
Toast.MakeText(this, "The Battery Service was just started", ToastLength.Long).Show();
return base.OnStartCommand(intent, flags, startId);
}
public override void OnCreate()
{
base.OnCreate();
}
public override void OnDestroy()
{
base.OnDestroy();
Toast.MakeText(this, "The Battery Service has been stopped", ToastLength.Long).Show();
}
public override IBinder OnBind(Intent intent)
{
//started service, NOT a binded service - return null...
return null;
}
}
}
を別のプロジェクトでは、私は私は次のコードを実行し、このサービスを呼び出すいます: -
をpublic void StartBatteryService()
{
Intent intent = new Intent(Android.App.Application.Context, typeof(AndroidBatteryService.AndroidBatteryService));
Android.App.Application.Context.StartService(intent);
}
コードは実行されますが、実際のサービスのOnStartCommandメソッドは実行されず、それを期待しています。何か案は??
私は携帯用のクラスライブラリであなたのサービスの定義を見ています。 "サービス"はポータブルクラスではなく、Androidプロジェクトに含まれている必要があります。説明できますか? –
また、なぜGeneratedEnumが必要ですか? –
私の最新の実験から、OnDestroy関数は呼び出されないかもしれません –