9

2 つのパラメーターを使用して新しいアクティビティを開始します。

Intent intent = new Intent(WebTestActivity.this, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP);                  
Uri uri =  Uri.parse(url);
intent.setData(uri);
startActivity(intent);

そしてキャッチuriインonNewIntentメソッド。

@Override
public void onNewIntent(Intent intent) {  //calls twice
    super.onNewIntent(intent);      
    Uri uri = intent.getData();
    new AsynkTask().execute(uri);
}

しかし、このonNewIntentメソッドは、正しくないように思われる何らかの未知の理由で 2 回呼び出されます。

4

2 に答える 2

0
Intent intent = new Intent(WebTestActivity.this, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP);                  
intent.putExtra("url",url);
startActivity(intent)

MainActivity で。

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Bundle extras = getIntent().getExtras();
    String url = extras.getString(url);

}

次に、URL を解析して Uri として使用できます。これにより、メソッドが 2 回呼び出されることはありません。

于 2014-08-25T20:15:33.260 に答える
0

onNewIntent(インテント インテント) これは、パッケージで launchMode を「singleTop」に設定するアクティビティに対して呼び出されるか、クライアントが startActivity(Intent) を呼び出すときに FLAG_ACTIVITY_SINGLE_TOP フラグを使用した場合に呼び出されます。

2 回呼び出された場合は、意図せずに呼び出されたに違いありません: アクティビティを 2 回開始しますか? または手動でメソッドを呼び出しますか?

于 2014-08-25T21:15:15.203 に答える