【发布时间】:2018-08-30 09:07:40
【问题描述】:
我正在尝试创建一个从设备启动开始的简单服务。问题是设备返回消息“不幸的是,[app_name] 已停止。”
我在几个小时内一直在努力解决这个问题,寻找错误,但这太简单了。希望你们能帮助我解决这个问题。
这是我的代码:
AndroidManifest.xml
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<application android:allowBackup="true" android:label="@string/app_name">
<receiver android:name=".StartReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>
<service android:name=".PService" />
</application>
StartReceiver.cs
[BroadcastReceiver]
[IntentFilter(new[] { Intent.ActionBootCompleted })]
public class StartReceiver : BroadcastReceiver
{
public override void OnReceive(Context context, Intent intent)
{
Intent startIntent = new Intent(context, typeof(PService));
context.StartService(startIntent);
}
}
最后是 PService.cs
[Service]
public class PService : Service
{
public override void OnCreate()
{
base.OnCreate();
}
public override IBinder OnBind(Intent intent)
{
return null;
}
public override StartCommandResult OnStartCommand(Intent intent, StartCommandFlags flags, int startId)
{
Toast.MakeText(this, "Start", ToastLength.Short).Show();
return StartCommandResult.Sticky;
}
public override void OnDestroy()
{
base.OnDestroy();
Toast.MakeText(this, "Stop", ToastLength.Short).Show();
}
}
此外,此服务应用程序针对 API 19 (4.4.2 KitKat) Android 版本。
我认为会有一个非常小的错误,是我犯的,但我真的找不到它。在此先感谢您的帮助。
【问题讨论】:
-
为了能够捕获 BOOT_COMPLETED 意图,您的应用还应该有 UI,并且您的用户应该至少打开一次应用。 - 出于安全原因。
-
是的,我有 Activity 类,我在其中启动服务。 (服务正常启动)问题是重启设备后
标签: c# android visual-studio xamarin service