gpt4 book ai didi

java - 无法在启动时启动服务

转载 作者:行者123 更新时间:2023-12-01 12:31:52 25 4
gpt4 key购买 nike

我的应用程序有相机照片备份服务。当用户开启该服务时,它会自动将SD卡照片备份到远程服务器。但是当用户关闭android操作系统并再次启动时,备份服务无法再次启动。

我在网上看了很多文章,我按照他们的描述做了一模一样的事情,但结果是错误的。也许这里的一些专家可以帮助我。请参阅下面的代码。

在android的manifest.xml中

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.seafile.seadroid2"
android:versionCode="20"
android:versionName="1.0.1"
android:installLocation="internalOnly">
<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="17" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<application
android:allowBackup="true"
android:name="com.seafile.seadroid2.SeadroidApplication"
android:label="@string/app_name"
android:icon="@drawable/ic_launcher">
<receiver android:name=".OSBootReceiver" >
<intent-filter>
<category android:name="android.intent.category.DEFAULT" />
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
<activity android:name="com.seafile.seadroid2.BrowserActivity"
android:label="@string/app_name"
android:theme="@style/Theme.SeafileTheme"
android:launchMode="singleTask">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<service android:name="com.seafile.seadroid2.transfer.TransferService" > </service>
<service android:name="com.seafile.seadroid2.monitor.FileMonitorService" > </service>
<service android:name="com.seafile.seadroid2.sync.CameraUploadService" > </service>
</application>
</manifest>

OSBootReceiver类

 public class OSBootReceiver extends BroadcastReceiver {
private static final String DEBUG_TAG = "OSBootReceiver";

@Override
public void onReceive(Context context, Intent intent) {
Log.d(DEBUG_TAG, "boot to notic receiver");

Intent cameraUploadIntent = new Intent(context,
CameraUploadService.class);
SharedPreferences settings = PreferenceManager
.getDefaultSharedPreferences(context);
boolean isUploadStart = settings.getBoolean(
BrowserActivity.CAMERA_UPLOAD_SWITCH_KEY, false);
if (!isUploadStart) {
return;
}
Log.d(DEBUG_TAG, "boot to start service");
context.startService(cameraUploadIntent);
}

}

这是完整的项目,但出现启动服务错误 on github

我多次尝试重新启动操作系统,但不喜欢打印任何日志!任何建议将不胜感激。

最佳答案

尝试检查 onReceive(.....) 中的启动已完成操作喜欢

if (Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction())) {

Logs("ON Boot completed with System BroadcastReceiver");

//do your job

}

并且还设置<intent-filter>喜欢你的OSBootReceivermanifest.xml

       <intent-filter>
<category android:name="android.intent.category.DEFAULT" />
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>

关于java - 无法在启动时启动服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25865686/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com