Skip to content

Commit

Permalink
fix crash when Preview Activities was restarted after app process was…
Browse files Browse the repository at this point in the history
… killed.
  • Loading branch information
tanlehua committed Mar 26, 2018
1 parent b658277 commit 1443065
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,9 @@ public void onCreate(@NonNull FragmentActivity context, @NonNull AlbumMediaCallb
}

public void onDestroy() {
mLoaderManager.destroyLoader(LOADER_ID);
if (mLoaderManager != null) {
mLoaderManager.destroyLoader(LOADER_ID);
}
mCallbacks = null;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@

import com.zhihu.matisse.internal.entity.Album;
import com.zhihu.matisse.internal.entity.Item;
import com.zhihu.matisse.internal.entity.SelectionSpec;
import com.zhihu.matisse.internal.model.AlbumMediaCollection;
import com.zhihu.matisse.internal.ui.adapter.PreviewPagerAdapter;

Expand All @@ -40,7 +41,13 @@ public class AlbumPreviewActivity extends BasePreviewActivity implements
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

if (!SelectionSpec.getInstance().hasInited) {
// When hasInited == false, indicate that Activity is restarting
// after app process was killed.
setResult(RESULT_CANCELED);
finish();
return;
}
mCollection.onCreate(this, this);
Album album = getIntent().getParcelableExtra(EXTRA_ALBUM);
mCollection.load(album);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,13 @@ public abstract class BasePreviewActivity extends AppCompatActivity implements V
protected void onCreate(@Nullable Bundle savedInstanceState) {
setTheme(SelectionSpec.getInstance().themeId);
super.onCreate(savedInstanceState);
if (!SelectionSpec.getInstance().hasInited) {
// When hasInited == false, indicate that Activity is restarting
// after app process was killed.
setResult(RESULT_CANCELED);
finish();
return;
}
setContentView(R.layout.activity_media_preview);
if (Platform.hasKitKat()) {
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
import android.support.annotation.Nullable;

import com.zhihu.matisse.internal.entity.Item;
import com.zhihu.matisse.internal.entity.SelectionSpec;
import com.zhihu.matisse.internal.model.SelectedItemCollection;

import java.util.List;
Expand All @@ -28,6 +29,13 @@ public class SelectedPreviewActivity extends BasePreviewActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (!SelectionSpec.getInstance().hasInited) {
// When hasInited == false, indicate that Activity is restarting
// after app process was killed.
setResult(RESULT_CANCELED);
finish();
return;
}

Bundle bundle = getIntent().getBundleExtra(EXTRA_DEFAULT_BUNDLE);
List<Item> selected = bundle.getParcelableArrayList(SelectedItemCollection.STATE_SELECTION);
Expand Down

0 comments on commit 1443065

Please sign in to comment.