2016-11-26 12 views
1

私はAccessibilityServiceを拡張するクラスを持っています。特定のイベントがあるときにアクティビティを開始します。AccessibilityServiceから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 
     } 
    } 

ありがとう!

答えて

3

AccesibilityServiceは、サービスクラスからの継承クラスです。 How to have Android Service communicate with Activity

あなたの質問のための最も簡単な方法:だから私たちはこれにその質問を参照することができますコールSTARTSERVICE()

1)あなたの活動のonDestroy()メソッドで:

@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; 
    } 
+0

これはこれを行う最も簡単な方法です。あなたが送信しているデータがパラカー可能であることを確認してください。もう1つのオプションはバインダーを経由します –

関連する問題