您好我试图获取服务类中的当前活动名称(活动标题)。
我试过了
with open('data.csv', mode='r+') as csvfile:
text = csvfile.read()
text = '1,2,3\n' + text
csvfile.seek(0)
csvfile.write(text)
但它没有用。还有其他想法吗?
答案 0 :(得分:0)
知道ActivityManager
管理活动,因此我们可以从ActivityManager
获取信息。我们通过
ActivityManager am = (ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE);
if(Build.VERSION.SDK_INT > 20)
{
String mPackageName = am.getRunningAppProcesses().get(0).processName;
}
else
{
String mpackageName = am.getRunningTasks(1).get(0).topActivity.getPackageName();
}
答案 1 :(得分:0)
服务与活动无关,因此没有直接的方法。
我建议:从BaseActivity.java扩展您的活动,在onResume()
中,您可以将当前活动名称保存为应用程序类中的静态变量。然后,这将在您的应用程序中随处可用。
public class App extends Application {
public static String currentActivityName;
}
public class MyActivity extends Activity {
@Override
protected void onResume() {
App.currentActivityName = this.getClass().getSimpleName();
}
}
答案 2 :(得分:0)
试试这个
//获取当前热门活动
ActivityManager am = (ActivityManager) this .getSystemService(ACTIVITY_SERVICE);
List<RunningTaskInfo> taskInfo = am.getRunningTasks(1);
ComponentName componentInfo = taskInfo.get(0).topActivity;
String Actvity_Name = taskInfo.get(0).topActivity.getClassName();
String PKG_Name = componentInfo.getPackageName();
//通过这种方式应用检查
if(Actvity_Name.equals("com.example.Your_Activity"))
{
}
//在清单文件中添加权限
<uses-permission android:name="android.permission.GET_TASKS"/>
<uses-permission android:name="android.permission.GET_PACKAGE_SIZE"/>