我有一個IntentService,我想從onCreate開始。這是一場火災,忘了打電話給一個網站,然後(可能)通過下載管理器開始下載。我不相信我的服務正在啓動,因爲我沒有看到它的任何Log語句。我的清單中有這個服務,與main相同。它也沒有出現在我的logcat(另一個線程說它應該)。Android IntentService從來沒有叫
的onCreate:
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
Intent heartbeat = new Intent(this, Heartbeat.class);
startService(heartbeat);
}
*我也試過this.startService(心跳);而且它也沒有工作。
清單:
<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:啓用標誌都沒有區別
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中運行的)。關於我在做什麼的任何想法都是錯誤的?
編輯 - 我看到來自標記ActivityManager的警告,在我的所有消息中都聲明「無法啓動服務意圖{act = com.example.vs_1.Heartbeat}:未找到」。然而,幾乎我所看到的關於該消息的每個建議都是將其放在應用程序標籤中,我已經完成了。
我也試着將Main/manifest中的Heartbeat.class和.Heartbeat分別轉換爲它們的長名字com.whatever,無濟於事。 –
你的代碼是好的。我想你在日誌控制檯中出錯了)(你確定過濾了詳細信息(你叫'Log.v()'),你的應用在控制檯設置中設置了嗎?你使用eclipse還是獨立ddms?) –
很確定,我可以添加Log.v(「AFTER」,「AFTER」);在startService之後,我在logcat中看到。我正在使用eclipse。所以如果代碼看起來不錯,我有什麼選擇?我想要使用IntentService,因爲它看起來非常適合,但我想我可以把它作爲一個asynctask放回去,它在今天早些時候開始工作。 –