Android 开发者文档 IntentService:我们是否定义了相同的 class 两次?
Android Developer documentation IntentService: Are we defining the same class twice?
所以我在 Android 开发人员中遵循这个示例:
http://developer.android.com/training/run-background-service/create-service.html
使用 IntentService 创建后台服务。
请注意,我们在第一个代码示例中定义了 class RSSPullService
:
public class RSSPullService extends IntentService {
@Override
protected void onHandleIntent(Intent workIntent) {
// Gets data from the incoming Intent
String dataString = workIntent.getDataString();
...
// Do work here, based on the contents of dataString
...
}
}
在接下来的页面中,报告工作状态:
http://developer.android.com/training/run-background-service/report-status.html
我很困惑,我们是否再次定义相同的class以获取状态?
public final class Constants {
...
// Defines a custom Intent action
public static final String BROADCAST_ACTION =
"com.example.android.threadsample.BROADCAST";
...
// Defines the key for the status "extra" in an Intent
public static final String EXTENDED_DATA_STATUS =
"com.example.android.threadsample.STATUS";
...
}
public class RSSPullService extends IntentService {
...
/*
* Creates a new Intent containing a Uri object
* BROADCAST_ACTION is a custom Intent action
*/
Intent localIntent =
new Intent(Constants.BROADCAST_ACTION)
// Puts the status into the Intent
.putExtra(Constants.EXTENDED_DATA_STATUS, status);
// Broadcasts the Intent to receivers in this app.
LocalBroadcastManager.getInstance(this).sendBroadcast(localIntent);
...
}
不要混淆,
class 都是一样的
第一个是展示我们如何创建扩展 IntentService 的服务
然后他们举例给这个IntentService发送数据
最后他们给出了示例来说明同一个 IntentService 如何返回结果。
第二个代码只是另一个示例,他们更改了旧意图服务的内容class
那是两个独立的例子,不用定义两次,只用一次定义。第一个示例(创建 Intent 服务)中的代码刚刚与 Reporting Work 示例中的代码合并。
所以我在 Android 开发人员中遵循这个示例:
http://developer.android.com/training/run-background-service/create-service.html
使用 IntentService 创建后台服务。
请注意,我们在第一个代码示例中定义了 class RSSPullService
:
public class RSSPullService extends IntentService {
@Override
protected void onHandleIntent(Intent workIntent) {
// Gets data from the incoming Intent
String dataString = workIntent.getDataString();
...
// Do work here, based on the contents of dataString
...
}
}
在接下来的页面中,报告工作状态: http://developer.android.com/training/run-background-service/report-status.html 我很困惑,我们是否再次定义相同的class以获取状态?
public final class Constants {
...
// Defines a custom Intent action
public static final String BROADCAST_ACTION =
"com.example.android.threadsample.BROADCAST";
...
// Defines the key for the status "extra" in an Intent
public static final String EXTENDED_DATA_STATUS =
"com.example.android.threadsample.STATUS";
...
}
public class RSSPullService extends IntentService {
...
/*
* Creates a new Intent containing a Uri object
* BROADCAST_ACTION is a custom Intent action
*/
Intent localIntent =
new Intent(Constants.BROADCAST_ACTION)
// Puts the status into the Intent
.putExtra(Constants.EXTENDED_DATA_STATUS, status);
// Broadcasts the Intent to receivers in this app.
LocalBroadcastManager.getInstance(this).sendBroadcast(localIntent);
...
}
不要混淆, class 都是一样的
第一个是展示我们如何创建扩展 IntentService 的服务
然后他们举例给这个IntentService发送数据
最后他们给出了示例来说明同一个 IntentService 如何返回结果。
第二个代码只是另一个示例,他们更改了旧意图服务的内容class
那是两个独立的例子,不用定义两次,只用一次定义。第一个示例(创建 Intent 服务)中的代码刚刚与 Reporting Work 示例中的代码合并。