【发布时间】:2020-09-17 21:22:03
【问题描述】:
我有一个应用程序的服务完全在后台运行,但有时我需要更改前台活动中的内容,现在假设我想显示Toast。
首先我正在检查应用程序是否作为前台打开
public boolean isForeground(String myPackage) {
ActivityManager manager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
List<ActivityManager.RunningTaskInfo> runningTaskInfo = manager.getRunningTasks(1);
ComponentName componentInfo = runningTaskInfo.get(0).topActivity;
return componentInfo.getPackageName().equals(myPackage);
}
那我想知道正在运行的活动是什么
String PKG_Name = componentInfo.getPackageName();
这会给我名字,但我想要的是得到对象Activity,做这样的事情:
activity.runOnUiThread(new Runnable() {
public void run() {
Toast.makeText(activity, "Hello", Toast.LENGTH_SHORT).show();
}
});
我该怎么做?如果不可能,有没有办法向服务发送信号或消息来告诉它?
【问题讨论】:
标签: android android-activity android-service