我有一个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放回去,它在今天早些时候开始工作。 –