2014-04-25 41 views
1

我想在定製微調使用分享按鈕FLAG_ACTIVITY_NEW_TASK標誌錯誤

這是我的代碼:

btnShareCS_One.setOnClickListener(new OnClickListener() { 

    @Override 
    public void onClick(View arg0) { 
     // Share 
     // Share Selected Item In Cell-Phone 
     Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND); 
     sharingIntent.setType("text/plain"); 
     String shareBody = txtTitleCS_One.getText().toString() + ": " + edtContentCS_One.getText().toString(); 
     sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, txtTitleCS_One.getText().toString()); 
     sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, shareBody); 
// sharingIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
// sharingIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     getContext().startActivity(Intent.createChooser(sharingIntent, "Share via")); 
    } 
}); 

但不起作用 錯誤:

android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want? 

如何修理它?

我的自定義微調正常工作,代碼工作正常,但不是在定製微調

我試着使用:

   getContext().startActivity(Intent.createChooser(sharingIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK), "Share via")); 

所以不要太工作

回答

2

使用它

  // Share Selected Item In Cell-Phone 
      Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND); 
      sharingIntent.setType("text/plain"); 
      String shareBody = note.title + ":" + "\n" + note.detail; 
      // sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, note.title + ":"); 
      sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, shareBody); 
      sharingIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
      G.currentActivity.startActivity(Intent.createChooser(sharingIntent, "اشتراک با...")); 

而且 G.currentActivity

G 

是全球性的類擴展應用及

currentActivity 

是靜態變量從活動

+0

問候,它豆確定 – HK1988

1

你只需要去掉註釋該行

sharingIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

您遇到此問題是因爲您在沒有標記FLAG_ACTIVITY_NEW_TASK的情況下從外部調用方法startActivity()。每當你從非活性類使用意向

+0

我用,而不是作品,巫行?怎麼樣? – HK1988

+0

我可以收到你的郵件嗎?我已被封鎖提問,請 – HK1988

1

則有必要加下面提到線傳達我們是從非活動調用活動

sharingIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

感謝

+0

不起作用,我告訴 – HK1988

+0

有人沒有回答,但給我「-1」! – HK1988

+0

請粘貼來自Logcat的整個錯誤跟蹤。它完成了 –

0
Intent intent = new Intent(); 
      intent.setAction(Intent.ACTION_SEND); 
      intent.setType("text/plain"); 

      String textMessage = "Text Of Message"; 
      intent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Subject"); 
      intent.putExtra(Intent.EXTRA_TEXT, textMessage); 
      intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
      context.getApplicationContext().startActivity(intent);