【发布时间】:2012-03-30 14:51:56
【问题描述】:
我有这个帖子:
public void run() {
try {
while(isThereActivityRunning()) {
results = sendGetMessage();
b.putString("results", results);
receiver.send(2, b);
ConnectionThread.sleep(timeInterval);
}
} catch (InterruptedException e) {
results = e.toString();
}
Log.d("Service", "Serivce Stoped");
}
还有一个检查我是否有任何活动正在运行的函数:
private boolean isThereActivityRunning()
{
String activity;
ActivityManager activityManager = (ActivityManager)context.getSystemService (Context.ACTIVITY_SERVICE);
List<RunningTaskInfo> services = activityManager.getRunningTasks(Integer.MAX_VALUE);
for (int i1 = 0; i1 < services.size(); i1++) {
activity = services.get(i1).topActivity.toString();
Log.d("Activity", activity);
if (activity.contains(context.getString(R.string.app_name))
return true;
}
return false;
}
我希望我的线程在没有活动运行时停止(这对我来说意味着应用程序已关闭)并且由于某种原因,即使我的活动没有显示,我也总是从函数中获得“真”.. 出了什么问题?
【问题讨论】:
标签: android multithreading android-activity