一般情况方式如下打开Activity

    Intent i = new Intent(this, ImgInfo.class); 
    i.putExtra("id", mPhotoId);  
    startActivity(i);

在Activity ImgInfo类的onCreate方法中写下如下的代码:

    Bundle bud = getIntent().getExtras();
    if (bud != null && bud.containsKey("id")) {
        mPhotoId = bud.getInt("id");
    }

如果有设置singleInstance模式

 <activity android:name="ImgInfo" android:label="@string/app_name"
   android:screenOrientation="portrait" android:launchMode="singleInstance">
 </activity>

就会发现除了第一次能正确接收之外,其他的会无效。

只是需要做的是重写onNewIntent方法,基本代码如下:

    @Override
    protected void onNewIntent(Intent intent) {  
        super.onNewIntent(intent);
        setIntent(intent);
        InitArg();
    }
    private InitArg(){
        Bundle bud = getIntent().getExtras();
        if (bud != null && bud.containsKey("id")) {
        mPhotoId = bud.getInt("id");
    }

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-08-27
  • 2021-04-02
  • 2021-11-23
  • 2022-12-23
  • 2021-08-11
  • 2021-10-28
猜你喜欢
  • 2021-05-22
  • 2021-08-01
  • 2021-11-23
  • 2022-01-22
  • 2022-12-23
  • 2022-12-23
  • 2021-06-26
相关资源
相似解决方案