react-native - android怎么在一个非activity类里面重启app
阿神
阿神 2017-04-18 09:18:41
0
4
518

stackoverflow翻了个遍也没找到解决办法。就很简单的一个功能,我实现了一个热更新功能,想在更新后重启app以应用此更新,因为如果不重启的话,此热更新根本不会立即应用。

Intent i = mContext.getPackageManager().getLaunchIntentForPackage(mContext.getPackageName() );
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
mContext.startActivity(i);

用了这个方法,调用后程序会弹出一个提示框,说抱歉,程序已经终止运行,然后就关闭了(有时候屏幕会闪一下,看起来好像重启了,但实际确没更新)。请教大家有什么办法没有?

阿神
阿神

闭关修行中......

모든 응답(4)
迷茫

이 방법을 시도해보고 작동하는지 확인하세요
ActivityManager am = (ActivityManager) mContext.getSystemService(mContext.ACTIVITY_SERVICE);
am.restartPackage("packageName");

巴扎黑

이 "간단한" 기능은 결코 단순하지 않습니다! "애플리케이션 프로세스가 종료되지 않았는지 확인하는 방법"이 간단하지 않은 것처럼 타사 애플리케이션 자체에는 자체적으로 다시 시작하는 기능이 없습니다. 하지만 불가능하지는 않습니다. jni는 프로세스 데몬을 구현하기 위해 프로세스를 포크하지만, 관심이 있다면 Google에서 검색해 볼 수 있습니다.

阿神

앱 프로세스를 다시 시작할지 아니면 활동을 다시 시작할지 모르겠습니다.
활동을 다시 시작하려면

으아악

프로세스를 다시 시작하려면 좋은 방법이 없는 것 같습니다. 프로세스를 다시 시작하려면 먼저 프로세스를 종료해야 합니다.

으아악

다음 단계는 다시 시작하는 것입니다. 프로세스가 종료되었으며 이를 달성하려면 시스템에 의존해야 하기 때문입니다. 방송이나 서비스를 통해 달성할 수 있는 것 같아서 Google에서 구체적으로 수행하지는 않았습니다. 내가 직접

伊谢尔伦

i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
改成
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
试试

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿