Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
#1

Работает ли код когда приложение закрыто ? - Android

28.07.2013, 14:39. Просмотров 845. Ответов 9
Метки нет (Все метки)

Не могу понять, должен ли этот код работать когда приложение закрыто. При реальных тестах не работает мне кажется. Вот сам код:

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
       android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<EditText
              android:id="@+id/point_latitude"
              android:layout_width="fill_parent"
              android:layout_height="wrap_content"
              android:layout_marginLeft="25dip"
              android:layout_marginRight="25dip"
              android:hint="Latitude"
       />
 
       <EditText
              android:id="@+id/point_longitude"
              android:layout_width="fill_parent"
              android:layout_height="wrap_content"
              android:layout_marginLeft="25dip"
              android:layout_marginRight="25dip"
              android:hint="Longitude"
       />
       <Button
              android:id="@+id/add_alert_button"
              android:text="Add Alert"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
       />
 
</LinearLayout>

2) Main Activity ProximityAlertActivity.java
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
public class ProximityAlertActivity extends Activity {
       private static final long MINIMUM_DISTANCECHANGE_FOR_UPDATE = 1; // in Meters
       private static final long MINIMUM_TIME_BETWEEN_UPDATE = 1000; // in Milliseconds
       private static final long POINT_RADIUS = 100; // in Meters
       private static final long PROX_ALERT_EXPIRATION = -1; // It will never expire
       private static final String PROX_ALERT_INTENT = "com.androidmyway.demo.ProximityAlert";
private LocationManager locationManager;
private EditText latitudeEditText;
       private EditText longitudeEditText;
       private Button addAlertButton;
 
       @Override
       public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
              setContentView(R.layout.main);
 
              locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
 
              latitudeEditText = (EditText) findViewById(R.id.point_latitude);
              longitudeEditText = (EditText) findViewById(R.id.point_longitude);
              addAlertButton = (Button) findViewById(R.id.add_alert_button);
 
              addAlertButton.setOnClickListener(new OnClickListener() {
                     public void onClick(View v) {
                            addProximityAlert();
                     }
              });
 
       }
 
       private void addProximityAlert() {
              double latitude = Double.parseDouble(latitudeEditText.getText().toString());
              double longitude = Double.parseDouble(longitudeEditText.getText().toString());
              Intent intent = new Intent(PROX_ALERT_INTENT);
              PendingIntent proximityIntent = PendingIntent.getBroadcast(this, 0, intent, 0);
locationManager.addProximityAlert(
                     latitude, // the latitude of the central point of the alert region
                     longitude, // the longitude of the central point of the alert region
                     POINT_RADIUS, // the radius of the central point of the alert region, in meters
                     PROX_ALERT_EXPIRATION, // time for this proximity alert, in milliseconds, or -1 to indicate no                           expiration
                     proximityIntent // will be used to generate an Intent to fire when entry to or exit from the alert region is detected
              );
 
              IntentFilter filter = new IntentFilter(PROX_ALERT_INTENT);
              registerReceiver(new ProximityIntentReceiver(), filter);
              Toast.makeText(getApplicationContext(),"Alert Added",Toast.LENGTH_SHORT).show();
       }
}
3) ProximityReceiver.java

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
public class ProximityIntentReceiver extends BroadcastReceiver {
       private static final int NOTIFICATION_ID = 1000;
 
       @Override
       public void onReceive(Context context, Intent intent) {
String key = LocationManager.KEY_PROXIMITY_ENTERING;
Boolean entering = intent.getBooleanExtra(key, false);
if (entering) {
                     Log.d(getClass().getSimpleName(), "entering");
              }else {
                     Log.d(getClass().getSimpleName(), "exiting");
              }
              NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
 
              Intent notificationIntent = new Intent(context, ProximityAlertActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, notificationIntent, 0);
Notification notification = createNotification();
              notification.setLatestEventInfo(context, "Proximity Alert!", "You are near your point of interest.", pendingIntent);
 
              notificationManager.notify(NOTIFICATION_ID, notification);
      }
 
       private Notification createNotification() {
              Notification notification = new Notification();
notification.icon = R.drawable.ic_menu_notifications;
              notification.when = System.currentTimeMillis();
              notification.flags |= Notification.FLAG_AUTO_CANCEL;
              notification.flags |= Notification.FLAG_SHOW_LIGHTS;
notification.defaults |= Notification.DEFAULT_VIBRATE;
              notification.defaults |= Notification.DEFAULT_LIGHTS;
notification.ledARGB = Color.WHITE;
              notification.ledOnMS = 1500;
              notification.ledOffMS = 1500;
              return notification;
        }
}
permission
Java
1
2
3
4
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.VIBRATE" />
Скажите должен ли этот код работать когда приложение закрыто ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.07.2013, 14:39     Работает ли код когда приложение закрыто ?
Посмотрите здесь:

Не работает приложение с Google Maps Android
На Android 4.2.1 приложение работает; на версии 2.3 - вылетает Android
Код крашит приложение. Найти ошибку Android
Android Не работает приложение с использованием акселерометра
Сервис останавливается когда закрывается приложение Android
Android Приложение работает не во всех версиях Андроид
Приложение который работает через интернет Android
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
29.07.2013, 01:37     Работает ли код когда приложение закрыто ? #2
глобальный ресивер работает даже если все активити закрыты.
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
29.07.2013, 13:32  [ТС]     Работает ли код когда приложение закрыто ? #3
Мне кажется что он не работает, как можно легко это проверить?
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
30.07.2013, 00:02     Работает ли код когда приложение закрыто ? #4
Цитата Сообщение от Stylish2013 Посмотреть сообщение
registerReceiver(new ProximityIntentReceiver(), filter);
судя по этой строчке, вы используете его как локально.
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
30.07.2013, 00:21  [ТС]     Работает ли код когда приложение закрыто ? #5
Цитата Сообщение от V0v1k Посмотреть сообщение
судя по этой строчке, вы используете его как локально.
вот оно что.. А как же переделать на работу в фоне когда приложение закрыто?:
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
30.07.2013, 00:26     Работает ли код когда приложение закрыто ? #6
в манифесте прописать ресивер.

Добавлено через 1 минуту
http://www.vogella.com/articles/Andr...r/article.html
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
30.07.2013, 00:47  [ТС]     Работает ли код когда приложение закрыто ? #7
Цитата Сообщение от V0v1k Посмотреть сообщение
в манифесте прописать ресивер.
Добавлено через 1 минуту
http://www.vogella.com/articles/Andr...r/article.html
а не могли бы сказать, что именно прописать мне ? Статья сложной мне показалась.
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
10.08.2013, 15:45  [ТС]     Работает ли код когда приложение закрыто ? #8
Цитата Сообщение от V0v1k Посмотреть сообщение
в манифесте прописать ресивер.
Помогите решить вопрос. Прописал я в Манифесте ресивер
Java
1
2
<receiver android:name="ProximityIntentReceiver" >
        </receiver>
но он не срабатывает когда приложение закрыто.

Помогите, уже много времени бьюсь с этим.
Wenceslaus
Android Developer
129 / 129 / 4
Регистрация: 05.07.2013
Сообщений: 205
12.08.2013, 11:45     Работает ли код когда приложение закрыто ? #9
Объявить Receiver глобально и с фильтром можно так:
XML
1
2
3
4
5
<receiver android:name="your.package.name.ProximityIntentReceiver" android:enabled="true" >
    <intent-filter>
        <action  android:name="your.intent" />
    </intent-filter>
</receiver>
Послать ему сообщение (из Activity) можно так:
Java
1
2
3
Intent i = new Intent("any string");
i.setClass(this, ProximityIntentReceiver.class);
this.sendBroadcast(i);
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.08.2013, 19:26     Работает ли код когда приложение закрыто ?
Еще ссылки по теме:

Приложение вылетает при старте на 4.1, на 4.4 - работает Android
Android Когда приложение удаляешь даже из списка открытых приложений
Запущенный service не работает, когда нет процесса Android
Android Как работает новостное приложение?
Приложение падает когда шапка Navigation Drawer Activity пропадает из виду Android

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
15.08.2013, 19:26  [ТС]     Работает ли код когда приложение закрыто ? #10
это не помогает (((( не работает. Ещё варианты могут быть?

Добавлено через 3 часа 31 минуту
Можете мне правильно подсказать как прописать в манифесте? и если в манифесте прописал, в коде необходимо прописывать или нет??

Добавлено через 21 час 52 минуты
Может просто нужно использовать это:

Java
1
2
3
4
5
6
7
8
9
10
11
public class MyLocationListener implements LocationListener {
        public void onLocationChanged(Location location) {
            
        }
        public void onStatusChanged(String s, int i, Bundle b) {            
        }
        public void onProviderDisabled(String s) {
        }
        public void onProviderEnabled(String s) {           
        }
    }
Yandex
Объявления
15.08.2013, 19:26     Работает ли код когда приложение закрыто ?
Ответ Создать тему
Опции темы

Текущее время: 12:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru