Android重启模拟:服务不工作
我跟随这篇文章来到这里 我实现了上面列出的所有步骤。但即使重新启动,我的服务仍然没有运行 我正在尝试将LaucherActivty转换为服务。当我在Emulator上单击Laucher图标时,Laucher活动工作正常。但当我将其转换为服务并重新启动emulator时,它就不起作用了 这是我的密码: 引导接收器Android重启模拟:服务不工作,android,android-emulator,android-service,Android,Android Emulator,Android Service,我跟随这篇文章来到这里 我实现了上面列出的所有步骤。但即使重新启动,我的服务仍然没有运行 我正在尝试将LaucherActivty转换为服务。当我在Emulator上单击Laucher图标时,Laucher活动工作正常。但当我将其转换为服务并重新启动emulator时,它就不起作用了 这是我的密码: 引导接收器 package my.app.client; import android.content.BroadcastReceiver; import android.content.Cont
package my.app.client;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
public class BootReceiver extends BroadcastReceiver {
public final String TAG = BootReceiver.class.getSimpleName();
//Intent Client, ClientAlt;
@Override
public void onReceive(Context context, Intent intent) {
Log.i(TAG,"BOOT Complete received by Client !");
String action = intent.getAction();
if(action.equals(Intent.ACTION_BOOT_COMPLETED)) { //android.intent.action.BOOT_COMPLETED
Intent serviceIntent = new Intent(context, Client.class);
serviceIntent.setAction(BootReceiver.class.getSimpleName());
//context.startService(serviceIntent);
//Client.setAction(LauncherActivity.class.getName());
serviceIntent.putExtra("IP", "127.0.0.1");
serviceIntent.putExtra("PORT", 9999);
context.startService(serviceIntent); }
}
}
AndroidManifest:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="my.app.client"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="8" />
<uses-permission android:name="android.permission.READ_PHONE_STATE"/> <!-- Pour récupérer l'IMEI et toutes ses informations -->
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/> <!-- Pour récupérer les appels sortant -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/><!-- Pour savoir s'il l'on est connecté ou pas -->
<uses-permission android:name="android.permission.INTERNET" /><!-- Pour utiliser les sockets -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <!-- Pour plus tard avec SD card -->
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /><!-- To start just after Boot -->
<application android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:debuggable="true">
<receiver android:name="BootReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<category android:name="android.intent.category.HOME" />
</intent-filter>
</receiver>
<service android:name="my.app.client.Client" >
<intent-filter>
<action android:name=".Client" />
</intent-filter>
</service>
<receiver android:name="my.app.client.AlarmListener">
</receiver>
<activity android:name="my.app.client.LauncherActivity" android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="my.app.alt.PhotoActivity" android:label="@string/app_name" >
</activity>
</application>
</manifest>
像这样用xml注册你的接收器
<receiver android:name="my.app.client.BootReceiver" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
在清单文件中将您的接收者注册为“.BootReceiver”,而不是“BootReceiver”嘿,谢谢您的回答。但我在问题中更新了更多信息。谢谢
<receiver android:name="my.app.client.BootReceiver" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>