2014-09-22 33 views
0

我在我的應用程序已經ShareActionProvider,我可以分享我在我的意圖額外OnCreateOptionsMenu方法定義的文本:ShareActionProvider動態額外改變

@Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     getMenuInflater().inflate(R.menu.share_menu, menu); 
     MenuItem item = menu.findItem(R.id.menu_item_share); 
     myShareActionProvider = (ShareActionProvider) item.getActionProvider(); 
     Intent myIntent = new Intent(); 
     myIntent.setAction(Intent.ACTION_SEND); 
     myIntent.putExtra(Intent.EXTRA_TEXT, siteUrl); 
     myIntent.setType("text/plain"); 
     myShareActionProvider.setShareIntent(myIntent); 
     return true; 
    } 

我有一對夫婦的AsyncTask的這改變我public static siteUrl
當AsyncTask完成時如何更改意圖的額外部分?

我將不勝感激。

回答

0

最後我想清楚,如何使用BroadcastReceiver動態更改共享額外功能。

創建過濾器旗:

public static SHAREDACTIONUPDATE = "SHAREDACTIONUPDATE"; 

和新廣播接收器()實例:

BroadcastReceiver onNotice = new BroadcastReceiver() { 
     @Override 
     public void onReceive(Context context, Intent intent) { 
      Intent myIntent = new Intent(); 
      myIntent.setAction(Intent.ACTION_SEND); 
      myIntent.putExtra(Intent.EXTRA_TEXT, actualTrackVideoUrl); 
      myIntent.setType("text/plain"); 
      if (myShareActionProvider != null) { 
       myShareActionProvider.setShareIntent(myIntent); 
      } 
     } 
    }; 

然後我registerReceiver()用的IntentFilter在onCreateOptionMenu()方法:

LocalBroadcastManager.getInstance(this).registerReceiver(onNotice, 
       new IntentFilter(ActivityStation.UPDATEINTENTEXTRAS)); 

最後,我稱之爲廣播在AsyncTasks onPostExecute()方法:

LocalBroadcastManager.getInstance(context).sendBroadcast(new Intent(ActivityStation.UPDATEINTENTEXTRAS)); 

,一切工作正常。