如何将数据从 Activity 发送回 AccessibilityService?
How to send data back from Activity to AccessibilityService?
我有一个扩展 AccessibilityService 的 class,当有特定事件启动时 activity。
问题是当 activity 结束时,它应该将数据发送回 'AccessibilityService'。有没有人知道如何做到这一点?
示例:
public class MyAccessibilityService extends AccessibilityService {
@Override
public void onAccessibilityEvent(AccessibilityEvent event) {
if (event.getEventType()==AccessibilityEvent.TYPE_VIEW_TEXT_CHANGED){
Intent intent=new Intent(getApplicationContext(),DialogActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
// String resul=set result When Activity is closed
}
}
提前致谢!
AccessibilityService 是从服务 class 继承的 class。所以我们可以参考这个问题:
How to have Android Service communicate with Activity
您问题的最简单方法:
1) 在 Activity 的 onDestroy() 方法中调用 startService():
@Override
protected void onDestroy() {
super.onDestroy();
Intent intent = new Intent(getApplicationContext(), MyAccessibilityService.class);
intent.putExtra("data","yourData");
startService(intent);
}
2) 覆盖您的 MyAccessibilityService 的 onStartCommand() 方法:
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
super.onStartCommand(intent, flags, startId);
String data="";
if(intent.getExtras().containsKey("data"))
data = intent.getStringExtra("data");
return START_STICKY;
}
1)在任何事件中从无障碍服务调用开始Activity(intent)。
String msg = "your message";
Intent intent = new Intent(serviceContext, activityClassName.class);
intent.putExtra("message",msg);
startActivity(intent);
2)现在在您的活动 onCreate(Bundle bundle) 方法中您可以获得意图。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent = getIntent();
String msg = intent.getStringExtra("message");
Log.e(LOG_TAG,"Message From Service - "+msg); //Message From Service - your message
}
使用 Intent,您可以将数据从服务传递到 Activity。
我有一个扩展 AccessibilityService 的 class,当有特定事件启动时 activity。
问题是当 activity 结束时,它应该将数据发送回 'AccessibilityService'。有没有人知道如何做到这一点?
示例:
public class MyAccessibilityService extends AccessibilityService {
@Override
public void onAccessibilityEvent(AccessibilityEvent event) {
if (event.getEventType()==AccessibilityEvent.TYPE_VIEW_TEXT_CHANGED){
Intent intent=new Intent(getApplicationContext(),DialogActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
// String resul=set result When Activity is closed
}
}
提前致谢!
AccessibilityService 是从服务 class 继承的 class。所以我们可以参考这个问题: How to have Android Service communicate with Activity
您问题的最简单方法:
1) 在 Activity 的 onDestroy() 方法中调用 startService():
@Override
protected void onDestroy() {
super.onDestroy();
Intent intent = new Intent(getApplicationContext(), MyAccessibilityService.class);
intent.putExtra("data","yourData");
startService(intent);
}
2) 覆盖您的 MyAccessibilityService 的 onStartCommand() 方法:
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
super.onStartCommand(intent, flags, startId);
String data="";
if(intent.getExtras().containsKey("data"))
data = intent.getStringExtra("data");
return START_STICKY;
}
1)在任何事件中从无障碍服务调用开始Activity(intent)。
String msg = "your message";
Intent intent = new Intent(serviceContext, activityClassName.class);
intent.putExtra("message",msg);
startActivity(intent);
2)现在在您的活动 onCreate(Bundle bundle) 方法中您可以获得意图。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent = getIntent();
String msg = intent.getStringExtra("message");
Log.e(LOG_TAG,"Message From Service - "+msg); //Message From Service - your message
}
使用 Intent,您可以将数据从服务传递到 Activity。