1
只有當特定應用程序打開時,是否有任何方法來執行服務(啓動或停止)?這種情況是我有一個「泡泡」服務(類似於facebook),我只想在我打開Minecraft PE遊戲時出現。當我改變或者我打開另一個應用程序時,我想放置隱形泡泡。這可能嗎?只有當我有一個打開的特定應用程序時,纔可以在Android中執行服務嗎?
只有當特定應用程序打開時,是否有任何方法來執行服務(啓動或停止)?這種情況是我有一個「泡泡」服務(類似於facebook),我只想在我打開Minecraft PE遊戲時出現。當我改變或者我打開另一個應用程序時,我想放置隱形泡泡。這可能嗎?只有當我有一個打開的特定應用程序時,纔可以在Android中執行服務嗎?
使用此代碼。
public class CheckRunningApplicationReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context aContext, Intent anIntent) {
try {
ActivityManager am = (ActivityManager) aContext
.getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningTaskInfo> alltasks = am
.getRunningTasks(1);
for (ActivityManager.RunningTaskInfo aTask : alltasks) {
if (aTask.topActivity.getClassName().equals("com.android.phone.InCallScreen")
|| aTask.topActivity.getClassName().equals("com.android.contacts.DialtactsActivity"))
{
Toast.makeText(aContext, "Phone Call Screen.", Toast.LENGTH_LONG).show();
}
String packageName = "com.example.checkcurrentrunningapplication";
if (aTask.topActivity.getClassName().equals(
packageName + ".Main"))
{
// When opens this example screen then show a alert message
Toast.makeText(aContext, "Check Current Running Application Example Screen.",
Toast.LENGTH_LONG).show();
}
}
} catch (Throwable t) {
Log.i("THROW", "Throwable caught: "
+ t.getMessage(), t);
}
}
}
在清單中添加此:
<receiver android:name = ".CheckRunningApplicationReceiver"/>
<uses-permission android:name="android.permission.GET_TASKS" />
Android Studio中告訴我,android.permission.GET_TASKS和getRunningTasks(1)已被棄用。是否有可能出於安全原因無法訪問當前正在運行的類的名稱?謝謝。 – DaveKiss
http://stackoverflow.com/questions/31156313/activitymanager-getrunningtasks-is-deprecated-android –