小编gee*_*aul的帖子

从应用程序托盘中删除应用程序后,将终止服务进程

我在启动活动时启动服务(或重新启动正在运行的服务),使用:

Intent intent = new Intent(this, MyService.class); startService(intent);

稍后基于某些操作,相同的活动将使用绑定到服务

bindService(new Intent(this, MyService.class), mConnection, Context.BIND_AUTO_CREATE);
Run Code Online (Sandbox Code Playgroud)

当活动被破坏时,我打电话

unbindService(mConnection);
Run Code Online (Sandbox Code Playgroud)

早些时候,当我从应用程序托盘中杀死相同的活动/应用程序并在运行的应用程序下显示"消息1进程1服务正在运行"时,该服务用于重新启动.

现在,该服务不会在杀死相同的活动/应用程序时重新启动.

我收到消息"0进程1服务正在运行",这意味着该服务实际上没有运行.

应用程序关闭时,服务不会重新启动.我的申请包含一项活动.在系统引导后启动时,服务也会成功启动.

当我使用startService()启动它时,为什么服务进程会被杀死?

编辑

从应用程序托盘关闭应用程序后,该服务用于重新启动.但现在突然使用相同的代码,它没有.当我关闭它时,它也会与其他应用程序一起发生.例如.

在此输入图像描述

android android-service

30
推荐指数
3
解决办法
4万
查看次数

在Android API中获取E 164格式的联系人少于16

我使用以下代码从手机中检索联系号码列表:

Cursor c = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, null);

while(c.moveToNext()){
      Log.d(TAG,"NO.: "+ c.getString(c.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NORMALIZED_NUMBER)));
}
Run Code Online (Sandbox Code Playgroud)

在API 16及更高版本中,这对我来说非常有用,因为我想要所有以E 164格式格式化的联系人,无论用户如何存储它们.

  1. 但是,对于16以下的API,上述代码将无法使用,我无法使用以下行获取所有联系人的E 164格式:

    c.getString(c.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
    
    Run Code Online (Sandbox Code Playgroud)

'PhoneNumberUtils'类无法使用.

另外,我不能使用libphonenumber库将数字转换为E 164格式,因为我不知道联系人的ISO 3166-1双字母国家代码.

有什么方法可以为Android中的每个联系人获取ISO 3166-1双字母国家/地区代码,以便我可以使用libphonenumber库?

或者是否有任何其他解决方案来实现第1点.

从手机检索的数字可以是任何格式,例如.

  • 本地:965XXXXXXX
  • 国家:0965XXXXXXX
  • 国际:+91 96 5X XXXXXX
  • 和别的

而E 164是+ 91XXXXXXXXXX,其中91是国家代码.

任何帮助将非常感激 !

android contactscontract libphonenumber

6
推荐指数
1
解决办法
1757
查看次数

清洁架构模式Android

我已经阅读了一些关于干净架构的文档和Android特定文档.

我完全喜欢为每个新功能创建一个单独的模块,但我关心的是如何组织我的数据层对象?因为我希望它们可以重复使用.

数据层是否应该是所有要素模块旁边的单独模块,还是数据层应该作为模块分解为组件?例如.网络,数据库等单独的模块?

android software-design

6
推荐指数
1
解决办法
1608
查看次数

什么"步骤"在stepSimulation中意味着什么,它的参数在Bullet Physics中意味着什么?

子弹物理学中术语"STEP"是什么意思?

功能stepSimulation()及其参数是什么意思?

我已阅读文档但我无法掌握任何内容.

任何有效的解释都会有很大的帮助.

bulletphysics

5
推荐指数
2
解决办法
3569
查看次数

使用xml资源创建ArrayAdapter并使用微调器检索"id"或"value"字段

我正在尝试使用ArrayAdapter创建一个微调器,我使用资源xml填充其值.

我还想给资源项一些"id"或"value".如何在onItemSelected()回调中检索这些值?

这是Java代码.

package com.waus.waus;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.Toast;

public class Register extends Activity implements OnItemSelectedListener {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.register);

        Spinner countrySpinner = (Spinner) findViewById(R.id.country_code_spinner);
        ArrayAdapter<CharSequence> countryAdapter = ArrayAdapter.createFromResource(this, R.array.country_codes, android.R.layout.simple_spinner_item);
        countryAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        countrySpinner.setOnItemSelectedListener(this);
        countrySpinner.setAdapter(countryAdapter);

    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    } …
Run Code Online (Sandbox Code Playgroud)

android android-arrayadapter android-spinner android-resources

5
推荐指数
1
解决办法
9414
查看次数