私は、常に実行している必要があり、タスクキラーなどでのみ閉じることができるアプリを開発しています。
私はマニフェストに持っています:
android:persistent="true"
ホームボタンを押しても閉じませんが、時々閉じていることがわかり、これが発生したくありません。
ユーザーが望むのは、カスタムランチャーからアプリを強制終了するか、タスクキラーを使用してアプリを閉じることができることです。
助言がありますか?前もって感謝します
PD: 戻るボタンを使用してアプリを終了するにはどうすればよいですか。アプリを閉じるのではなく、アプリまたはそのアクティビティの表示を停止しますが、アプリはバックグラウンドで実行し続ける必要があります。
サービスを作成しましたが、何かが正常に動作していません これをマニフェストに追加しました
<service android:name=".ONService"></service>
application タグの末尾の直前にあり、これは ONService.java です。
package com.omninotifier.main;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.os.IBinder;
public class ONService extends Service{
@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
return null;
}
@Override
public void onCreate() {
// TODO Auto-generated method stub
//super.onCreate();
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
// TODO Auto-generated method stub
//return super.onStartCommand(intent, flags, startId);
return START_STICKY;
}
@Override
public void onDestroy() {
// TODO Auto-generated method stub
NotificationManager manager = (NotificationManager)
getSystemService(Context.NOTIFICATION_SERVICE);
Notification notification = new Notification(R.drawable.ic_stat_alert,
getResources().getString(R.string.ServiceDestroyed), System.currentTimeMillis());
notification.flags = Notification.FLAG_AUTO_CANCEL;
manager.notify(150, notification);
super.onDestroy();
}
}
そして、私はこれを行うサービスを開始し、アプリが開始します:
これがアプリのメイン アクティビティです
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Intent serviceIntent = new Intent();
serviceIntent.setAction(".ONService");
startService(serviceIntent);
//............
}
これを機能させるには、サービス タグにアクションを含むインテント フィルターを追加する必要がありますか? それとも他の問題ですか?
問題は、サービスを開始できなかったことです。これは修正です:
マニフェストで
<service android:name=".ONService">
<intent-filter android:priority="100">
<action android:name=".ONService"/>
</intent-filter>
</service>
サービスを呼び出すアクティビティで:
Intent serviceIntent = new Intent(".ONService");
startService(serviceIntent);