1

AsyncTaskのデータをタブ付きアクティビティのフラグメントに渡しています。なぜEventBusのonEvent()が呼び出されていないのですか?onEvent()が呼び出されていませんか?

BackgroundWorker.java doInBackground()は、このファイルは、タブ活性の断片であるMainActivity

public class BackgroundWorker extends AsyncTask<String,Void,String> { 

    @Override 
    protected void onPostExecute(String line) { 
    userResult = line.split(" "); 
    String result = userResult[0]; 

    if(result.equals("Success")){ 
     CustomMessageEvent event = new CustomMessageEvent(); 
     event.setCustomMessage(line); 
     Intent intent = new Intent(context,TabActivity.class); 
     intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     context.startActivity(intent); 
     EventBus.getDefault().post(event); 
    } 
    } 
} 

ProfileTab.javaによって呼び出されます。タブ付きアクティビティで実行する必要があるものがあるか、doInBackgroundを再度呼び出す必要がありますか。

public class ProfileTab extends Fragment { 

    public TextView t1; 
    private View rootView; 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    rootView = inflater.inflate(R.layout.profile, container, false); 

    t1 = (TextView) rootView.findViewById(R.id.textView4); 

    EventBus.getDefault().register(this); 
    Log.d(TAG, "onCreateView: "); 

    return rootView; 
    } 

    @Subscribe(threadMode = ThreadMode.ASYNC) 
    public void onEventAsync(CustomMessageEvent event) { 
    Log.d(TAG, "onEvent: "); 
    t1.setText(event.getCustomMessage()); 
    } 

} 

はLocalBroadcastManagerを試してみましたが、結果は同じだった、onReceive()は呼び出されませんでした。どこが間違っていますか?

答えて

0

あなたがonPostExecuteでアクティビティを開始した場合は、イベントではなくインテントでデータを渡すことをおすすめします。これは簡単です。 登録する前にイベントが投稿されているため、登録されたメソッドは呼び出されません。postの代わりにpostStickyを使用すると、イベントが発生します。

lineString)とします。だから、意図を構築:

Intent intent = new Intent(context,TabActivity.class); 
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
intent.putExtra("LINE", line); 
context.startActivity(intent); 

のonCreateでのごTabActivityに渡された値の読み取りより:はい、これは役立つかもしれない

String line = getIntent().getStringExtra("LINE", ""); 
+0

を。 – Vikrant

+0

'postSticky'も動作していません。 – raviw3

+0

私が提案するように、そこには 'EventBus'ではなく、意図を使用します。 –

関連する問題