我使用了android:launchMode =“singleInstance”,它会在保留第一个实例的同时停止创建应用程序的另一个实例。
这是我的活动的配置信息
<activity
android:name="com.abc.SplashActivity"
android:label="@string/app_name"
android:screenOrientation="portrait"
android:theme="@style/Theme.ABC"
>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<category android:name="android.intent.category.DEFAULT" />
<data
android:host="192.168.0.52"
android:scheme="http" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
答案 0 :(得分:2)
听起来您正在尝试重新启动应用。你可以通过在不久的将来设置一个警报来启动你的应用程序,同时杀死现有的进程。
可以使用以下代码实现:
AlarmManager alarm = (AlarmManager) MyActivity.this.getSystemService(Context.ALARM_SERVICE);
alarm.set(AlarmManager.RTC, System.currentTimeMillis() + 1000, PendingIntent.getActivity(MyActivity.this, 0, new Intent(MyActivity.this, MyActivity.class), 0));
android.os.Process.sendSignal(android.os.Process.myPid(), android.os.Process.SIGNAL_KILL);
答案 1 :(得分:2)
android:launchMode="singleInstance"
适用于某项活动,不适用于申请/流程。它不保留第一个实例。它确保只有一个实例。仔细阅读docs。
如果您想要杀死自己的活动,请致电finish()