package com.xproject.utility;

import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method; import android.app.Activity;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.util.Log; public class Restart { private Class<?> _unityPlayerClass;
private Field _unityPlayerActivityField;
public Activity _activity;
void init()
{
try {
this._unityPlayerClass = Class.forName("com.unity3d.player.UnityPlayer");
this._unityPlayerActivityField = this._unityPlayerClass.getField("currentActivity");
//this._activity == null
this._activity = (Activity) this._unityPlayerActivityField.get(this._unityPlayerClass);
}
catch (Exception e)
{
Log.d("Unity", e.toString());
}
} public void restartApplication() {
init();
new Thread(){
public void run(){
Intent launch=_activity.getBaseContext().getPackageManager().getLaunchIntentForPackage(
_activity.getBaseContext().getPackageName());
launch.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
_activity.startActivity(launch);
android.os.Process.killProcess(android.os.Process.myPid());
}
}.start();
_activity.finish();
} }

unity 中调用

private AndroidJavaClass javaObj = null;
void InitJavaTools()
{ javaObj = new AndroidJavaClass("com.cytx.tools.helper");
using (AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer"))
{
object jo = jc.GetStatic<AndroidJavaObject>("currentActivity");
javaObj.CallStatic("init", jo);
}
} void RestartApplication()
{
Debug.Log("restartApplication0");
javaObj.CallStatic("restartApplication");
Debug.Log("restartApplication2");
}
    void RestartApp()
{
#if UNITY_ANDROID && !UNITY_EDITOR
AndroidJavaClass jc = new AndroidJavaClass("com.luo.pc.mylibrary.Restart");
AndroidJavaObject jo = jc.CallStatic<AndroidJavaObject>("getInstance", gameObject.name);
jo.Call("restartApplication");
#else
Debug.Log("restart");
#endif }

  

  

android 重启app的更多相关文章

  1. Cordova 打包 Android release app 过程详解

    Cordova 打包 Android release app 过程详解 时间 -- :: SegmentFault 原文 https://segmentfault.com/a/119000000517 ...

  2. 【Android端 APP GPU过度绘制】GPU过度绘制及优化

    一.Android端的卡顿 Android端APP在具体使用的过程中容易出现卡顿的情况,比如查看页面时出现一顿一顿的感受,切换tab之后响应很慢,或者具体滑动操作的时候也很慢. 二.卡顿的原因 卡顿的 ...

  3. 分享我开发的网络电话Android手机APP正式版,图文详解及下载

    分享我开发的网络电话Android手机APP正式版,图文详解及下载 分享我开发的网络电话Android手机APP正式版 实时语音通讯,可广域网实时通讯,音质清晰流畅! 安装之后的运行效果: 第一次安装 ...

  4. Android开发App工程结构搭建

    本文算是一篇漫谈,谈一谈关于android开发中工程初始化的时候如何在初期我们就能搭建一个好的架构.      关于android架构,因为手机的限制,目前我觉得也确实没什么大谈特谈的,但是从开发的角 ...

  5. APICloud云修复再升级 增加热重启APP功能

    移动应用开发平台APICloud的亮点功能云修复在本月迎来升级版,云修复是APICloud的优势功能之一,通过APICloud平台开发的APP或者嵌入SuperWebView SDK的原生APP在发布 ...

  6. Android 启动APP黑屏解决方案

    #Android 启动APP黑屏解决方案# 1.自定义Theme //1.设置背景图Theme <style name="Theme.AppStartLoad" parent ...

  7. Android手机app启动的时候第一个Activity必须是MainActivity吗

    原文:Android手机app启动的时候第一个Activity必须是MainActivity吗 Android手机APP启动的第一个Activity是可以自己设置的,不是必须的MainActivity ...

  8. Android原生APP内分享

    Android原生APP内分享,可实现数据分享以及assets文件夹分享及私有文件分享 项目地址:https://github.com/json-pu/AndroidAppShare.git

  9. Android替换APP字体 — Typeface

    Android替换APP字体 — Typeface APP字体的思路一般都会想到自定义控件(TextView.EditView),但是项目中会有很多种控件,就算用也会承担一些风险和资源的消耗,主要是这 ...

随机推荐

  1. 自制操作系统Antz(14)——实现内置编程语言(词法解析器)

    AntzScript

  2. Django模板语言

    day66 2018-05-08 1. 内容回顾 1. 模板系统(字符串替换) 1. 语法 1. 变量相关: {{ name }},{{name|length}},{{name|default:&qu ...

  3. centos 7安装phantomjs

    centos 7安装phantomjs wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_6 ...

  4. selenium+unittest自动化测试

    学了unittest+接口测试后,又试着用框架去做UI测试.感觉还是很好用的. 项目里该有的基本都有了,供以后扩展学习做个参考. 链接:https://github.com/Mollylin0/mon ...

  5. .net 去除特殊字符

    str = Regex.Replace(str, @"<script[^>]*?>.*?</script>", "", Regex ...

  6. 使用bootstrap-select有时显示“Nothing selected”

    .html()后加 $('#courseList').selectpicker('refresh'); $('#courseList').selectpicker('render'); 来源

  7. Jenkins部署的时候报错

    拿了一个最简单的,好不容易maven开始跑了 最终给我报错了 [INFO] -------------------------------------------------------------- ...

  8. 实验八 <FBG> 基于原型的团队项目需求调研与分析

    <FBG>团队项目原型设计:http://www.cnblogs.com/ymm3/p/9012534.html GitHub的链接地址:https://github.com/FBGfbg ...

  9. 一步一步搭建vue项目

    1 安装步骤 创建一个目录,我们这里定义为Vue 在Vue目录打开dos窗体,输入如下命令:vue create myproject 选择自定义   4. 先选择要安装的项目,我们这里选择4个   5 ...

  10. LeetCode--029--两数相除(java)

    给定两个整数,被除数 dividend 和除数 divisor.将两数相除,要求不使用乘法.除法和 mod 运算符. 返回被除数 dividend 除以除数 divisor 得到的商. 示例 1: 输 ...