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

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

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

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

28.07.2013, 14:39. Просмотров 851. Ответов 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     Работает ли код когда приложение закрыто ?
Посмотрите здесь:

Сервис останавливается когда закрывается приложение - Программирование Android
Добрый вечер, господа. Перечитал очень много статей по поводу сервисов в Android. Вроде все делаю правильно, но не понимаю почему так...

Приложение останавливается, когда делаю поворот экрана - Программирование Android
Приложение останавливается, потому что не все элементы использованы из вертикальной ориентации, но мне например в горизонтальной ориентации...

Когда приложение удаляешь даже из списка открытых приложений - Программирование Android
То есть если у меня есть приложение состоящее из одного активити и я не просто закрыл приложение нажав кнопку back, а зашел в запущенные...

Приложение падает когда шапка Navigation Drawer Activity пропадает из виду - Программирование Android
В моей программе используется Navigation Drawer Activity и в нем много пунктов меню. И поэтому как только шапка Navigation Drawer Activity...

Запущенный service не работает, когда нет процесса - Программирование Android
Запускаю сервис в startForeground() он работает, в работающих приложениях у меня показано активны 1н процесс и 1н сервис (мой). Но когда...

Код крашит приложение. Найти ошибку - Программирование Android
Требуется помощь. Есть записи в ListView, ставлю check на против записей. Потом выбираю какую из кнопок нажать(роли не играет какую) ...

Как работает новостное приложение? - Программирование Android
Добрый день. В google play market есть много новостных приложений, меня интересует принцип их работы, то есть откуда берутся данные о...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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
130 / 130 / 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     Работает ли код когда приложение закрыто ?
Еще ссылки по теме:

Не работает приложение с использованием акселерометра - Программирование Android
Пытаюсь написать приложение, в котором по экрану будет двигаться какой то объект в зависимости от наклона смартфона. Насколько я понял, у...

Не работает приложение с Google Maps - Программирование Android
Доброго времени суток. Недавно начал писать под Android и в поисках литературы наткнулся на одно приложение. Суть его в том, что оно по...

Не работает простое helloworld' овское приложение - Программирование Android
Здравствуйте. Я только начал изучать программирование под Android. С типичного хеллоуворлдского приложения. Вот мой код: import...

Приложение работает не со всеми версиями на Genymotion - Программирование Android
Коллеги, помогите. Не могу понять, просмотрел уже все темы, почему приложение запускается не со всеми версиями. Даже есть такое как на...

Приложение вылетает при старте на 4.1, на 4.4 - работает - Программирование Android
Здравствуйте, Я написал приложение для android в eclipse 4.4.2. На телефоне с android 4.4.2 приложение отлично работает. На телефоне...


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

Или воспользуйтесь поиском по форуму:
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     Работает ли код когда приложение закрыто ?
Ответ Создать тему
Опции темы

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