我正面临着这个问题。 我的客户必须在十个用户上分发/保存我的应用程序。他们没有为内部政策安装市场,所以我最终为新版本检查/下载维护了一个Web服务。一切正常,apk安装,但我无法在更新后重新启动应用程序。我已经尝试过(我认为)在网上找到的所有建议(首先包括在stackoverflow上找到的建议);最后一个是在清单中插入一个广播接收器,并在我的代码中构建一个静态类,但没有。 如果有人有建议,我将非常感激。 这是我的最后一个代码(我也试过没有.PACKAGE_REPLACED):
<receiver android:name="tecnici.UpdaterBroadcastReceiver" android:enabled="true">
<intent-filter>
<action android:name="android.intent.action.MY_PACKAGE_REPLACED" />
<data android:scheme="package" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.PACKAGE_REPLACED" />
<data android:scheme="package" />
</intent-filter>
</receiver>
在我的代码中:
namespace tecnici
{
public class UpdaterBroadcastReceiver : BroadcastReceiver
{
public override void OnReceive(Context context, Intent intent)
{
try
{
PackageInfo _info = context.PackageManager.GetPackageInfo(InternalPackage.ApplicationPackage, 0);
clStaticCommon.SetSystemInfo(context,null,null,null,SyncTheme.Undefined,false);
clStaticCommon.WriteLog(new string[]{ "UpdateBroadcastReceiver", "Applicazione aggiornata", "Version code : " + _info.VersionCode.ToString(), "Version name : " + _info.VersionName });
clStaticCommon.ClearSystemInfo();
}
catch
{
}
Intent _main = new Intent(context,typeof(MainActivity));
_main.AddFlags(ActivityFlags.NewTask);
context.StartActivity(_main);
}
}
try / catch中的代码只用于在我的内部日志中写入一些行。
感谢。 鲁道夫。