2012-02-09 25 views
6

我有一個應用程序是SingleTask,並且能夠聽'測試'方案。Android onNewIntent從應用程序啓動器給我最後的意圖

如果我按一下按鈕(見代碼)我重新啓動自己和onNewIntent被稱爲給我的「測試」意圖(現在我可能會推片段對此做出何種反應)

現在如果我按回家,然後打開應用程序啓動器並重新進入我的應用程序我想要調用onNewIntent,但是有一個空的意圖,因爲我不想重做我的動作(例如推碎片)。但onNewIntent向我提供了用於啓動我的活動的最後一個意圖,這是'測試'的意圖。

我應該怎麼做才能避免推送相同的片段?沒有使用我自己的ID有沒有一個好方法。

public class OnNewIntentTestActivity extends Activity { 
/** Called when the activity is first created. */ 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    Log.e("", "on create"); 

    ((Button) findViewById(R.id.button1)).setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      Log.e("", "Relaunch activity"); 
      startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("testing://hello"))); 

     } 
    }); 
} 

@Override 
protected void onNewIntent(Intent intent) { 
    super.onNewIntent(intent); 

    Log.e("", "onNewIntent: " + (intent == null? "none" : (intent.getAction() + ":" + intent.getData()))); 
} 
} 

回答

0

setIntent(null);在獲得您需要的數據後,您需要在onNewIntent

相關問題