我有一个<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<table>
<tr>
<td class="ars">1. District</td>
<td class="ams">:<a style="padding-left: 8px;"> ktm qwerty</a></td>
</tr>
<tr>
<td class="ars">2. Station</td>
<td class="ams">:<a style="padding-left: 8px;"> new york city</a></td>
</tr>
<tr>
<td class="ars">3. Date & Time </td>
<td class="ams">:<a style="padding-left: 8px;">01-01-2018 </a></td>
</tr>
<tr>
<td class="ars">3. Particulars of search</td>
</tr>
<tr>
<td class="ars"> a)What are you wearing</td>
<td>: <a style="padding-left: 8px;">no</a> </td>
</tr>
<tr>
<td class="ars">
<span>4.</span>
<p class="test">The email id you are using and the corresponding address and phone number along with fathers name</p>
</td>
<td>:</td>
</tr>
</table>
</body>
</html>
女巫,几乎每一个活动都被这样召唤:
public class Tracking extends Service
这很好用, Intent serviceIntent = new Intent(this, Tracking.class);
serviceIntent.putExtra("name", "Tabla3b Kras");
serviceIntent.putExtra("time", TimeGenerator.getTime());
startService(serviceIntent);
仅在第一时间被调用,public void onCreate()
每隔一次被调用。
我的问题是,当用户关闭应用程序时。假设您按了两次后退或进入打开的应用列表,然后将其消除。我收到一个“不幸的是,“ appname”已停止工作。
我知道我可以在onStop()中关闭该服务,但是由于我是从几乎所有活动中调用该服务的,因此我必须在所有活动中都实现onStop()还是足以在MainActivity中完成它.java?如果用户在活动之间进行切换,服务会停止吗?
答案 0 :(得分:2)
onBackPress()
后,您可以停止服务。然后如何从其他活动将变量传递给服务?
您可以通过多种方式在“活动与服务”之间进行交流。
Binder
。您可以关注 this answer 。Handler
。遵循 this 。BroadcastReceiver
。遵循 this 。EventBus
。由于易于实现,该库如今正变得越来越流行。如果您问我的偏爱,我早些时候使用过BroadcastReceiver
和Binder
。但是现在我使用EventBus 。您可以在 EventBus documentation 中简化实施步骤。
检查您的服务是否已在运行。如果未运行,请在使用前启动服务。
private boolean isMyServiceRunning(Class<?> serviceClass) {
ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
if (serviceClass.getName().equals(service.service.getClassName())) {
return true;
}
}
return false;
}