I am tying to practice with RecyclerView by create simple app to sending and receiving tweet from nodejs server. In main Activity I just list responses and in the second activity I send a simple tweet to server. I have a RecyclerView in my main Activity, it's job is showing received data as list. I do configure 
`RecyclerView` like below:

```
        //config recycler view
    mRyTweets = (RecyclerView) findViewById(R.id.ry_tweets);
    mRyTweets.setLayoutManager(new LinearLayoutManager(this));
    mAdapter = new TweetAdapter(this, new TweetAdapter.TweetEventHandler() {
        @Override
        public void onEditTweet(String tweetId, int position) {

        }

        @Override
        public void onDeleteTweet(String tweetId, int position) {

        }
    });
    mRyTweets.setAdapter(mAdapter);

```

**and its layout:**

```
    <android.support.v7.widget.Toolbar
    android:id="@+id/default_toolbar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:background="@color/colorPrimary"
    android:popupTheme="@style/ThemeOverlay.AppCompat.Light" />

<android.support.v7.widget.RecyclerView
    android:id="@+id/ry_tweets"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_below="@id/default_toolbar"/>
</RelativeLayout>

```

**this is where I receive response from a simple nodejs server:**

```
   private void getTweetsFromServer() {
    Call<List<TweetModel>> call = mTService.getTweets();
    call.enqueue(new Callback<List<TweetModel>>() {
        @Override
        public void onResponse(Call<List<TweetModel>> call, Response<List<TweetModel>> response) {

            if (response.isSuccessful()) {
                //update the adapter data
                mAdapter.updateAdapterData(response.body());
                mAdapter.notifyDataSetChanged();
            } else {
                ErrorModel errorModel = ErrorUtils.parseError(response);
                Toast.makeText(getBaseContext(), "Error Type is: " + errorModel.type + " , description "
                        + errorModel.description, Toast.LENGTH_SHORT).show();
            }
        }

```

in this line `mAdapter.updateAdapterData(response.body());` I add response from server to my **adapter**:

```
public class TweetAdapter extends RecyclerView.Adapter<TweetAdapter.TweetViewHolder> {

private Context mContext;
private LayoutInflater mLayoutInflater;
private List<TweetModel> mData = Collections.emptyList();
private TweetEventHandler mTweetEventHandler;

public TweetAdapter(Context context, TweetEventHandler tweetEventHandler) {
    this.mContext = context;
    this.mLayoutInflater = LayoutInflater.from(context);
    this.mTweetEventHandler = tweetEventHandler;
}

public void updateAdapterData(List<TweetModel> data) {
    this.mData = data;
}

```

**in second activity i have a menu for sending tweet:**

```
           TweetModel tweetModel = new TweetModel();
        //assign tweet model values
        tweetModel.body = mETxTweetBody.getText().toString();
        tweetModel.feel = mSelectedMode;

        //create call generic class to send request to server
        Call<TweetModel> call = mTService.createNewTweet(tweetModel);
        //Async request
        //NOTE: you should always Async request since the sync request cause the crash of your app
        call.enqueue(new Callback<TweetModel>() {
            @Override
            public void onResponse(Call<TweetModel> call, Response<TweetModel> response) {

                if (response.isSuccessful()) {
//
                    Toast.makeText(getApplicationContext(), "Successfully post tweet" + response.body().created_at
                            , Toast.LENGTH_SHORT).show();

                    finish();

                } 

```

Everything is good, but when I send a new tweet in my main activity new tweet does not show immediately in my list and I have to do exit from app and run again. I don't know why `mAdapter.notifyDataSetChanged();` does not work?
what's your suggestion ??