onCreate で開始したい IntentService があります。Web サイトに呼び出しを行い、(おそらく) downloadmanager を介してダウンロードを開始するのは、ファイア アンド フォーゲットです。ログステートメントが表示されないため、サービスが開始されているとは思いません。メインと同じパッケージのマニフェストにサービスがあります。また、logcat にも表示されません (別のスレッドがそうすべきだと言っています)。
作成時:
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
Intent heartbeat = new Intent(this, Heartbeat.class);
startService(heartbeat);
}
※こちらも試しました。startService(heartbeat); それも機能しませんでした。
マニフェスト:
<application
android:debuggable="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<service android:name=".Heartbeat" android:enabled="true"/>
<activity
android:name=".MainActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:label="@string/title_activity_main" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
* android:enabled フラグの有無にかかわらず違いはありません
IntentService の開始:
public class Heartbeat extends IntentService
{
public Heartbeat()
{
super("Heartbeat");
Log.v("SUPER", "SUPER");
}
@Override
protected void onHandleIntent(Intent intent)
{
Log.v("HERE", "HERE");
//do other stuff
これらのログ ステートメントはいずれもコンソール/logcat に表示されず、私のサービスは Web サーバーにヒットしません (このコードは以前は asynctask にあり、機能していました)。私が間違っていることについてのアイデアはありますか?
編集 - すべてのメッセージに「サービス インテントを開始できません { act=com.example.vs_1.Heartbeat }: 見つかりません」というタグ ActivityManager からの警告が表示されます。ただし、そのメッセージで見たほぼすべての提案は、アプリケーション タグにマニフェストを配置することでした。これは既に行っています。