質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Q&A

0回答

460閲覧

MAp Activityにて位置情報の取得時にアプリ落ちが激しいです。

satomi_1223

総合スコア1

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

0グッド

0クリップ

投稿2020/09/12 12:19

map activity でこのプログラムを組み込んだんですが、画面落ちが激しいです。
問題点を教えてください。

map activityにて位置情報を取得しようとしています。

詳しく教えていただきたいです。よろしくお願いします。

public class MapsActivity extends FragmentActivity implements LocationListener {

private GoogleMap mMap; private LocationManager mLocationManager; private String bestProvider; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initLocationManager(); } @Override protected void onStart() { super.onStart(); locationStart(); } @Override protected void onStop() { super.onStop(); locationStop(); } private void initLocationManager() { // インスタンス生成 mLocationManager = (LocationManager) getSystemService(LOCATION_SERVICE); // 詳細設定 Criteria criteria = new Criteria(); criteria.setAccuracy(Criteria.ACCURACY_FINE); criteria.setPowerRequirement(Criteria.POWER_HIGH); criteria.setSpeedRequired(false); criteria.setAltitudeRequired(false); criteria.setBearingRequired(false); criteria.setCostAllowed(true); criteria.setHorizontalAccuracy(Criteria.ACCURACY_HIGH); criteria.setVerticalAccuracy(Criteria.ACCURACY_HIGH); bestProvider = mLocationManager.getBestProvider(criteria, true); } private void checkPermission() { if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { // パーミッションの許可を取得する ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION}, 1000); } } private void locationStart() { checkPermission(); mLocationManager.requestLocationUpdates(bestProvider, 60000, 3, this); } private void locationStop() { mLocationManager.removeUpdates(this); } @Override public void onLocationChanged(Location location) { Log.d("DEBUG", "called onLocationChanged"); Log.d("DEBUG", "lat : " + location.getLatitude()); Log.d("DEBUG", "lon : " + location.getLongitude()); } @Override public void onStatusChanged(String provider, int status, Bundle extras) { Log.d("DEBUG", "called onStatusChanged"); switch (status) { case LocationProvider.AVAILABLE: Log.d("DEBUG", "AVAILABLE"); break; case LocationProvider.OUT_OF_SERVICE: Log.d("DEBUG", "OUT_OF_SERVICE"); break; case LocationProvider.TEMPORARILY_UNAVAILABLE: Log.d("DEBUG", "TEMPORARILY_UNAVAILABLE"); break; default: Log.d("DEBUG", "DEFAULT"); break; } } @Override public void onProviderDisabled(String provider) { Log.d("DEBUG", "called onProviderDisabled"); } @Override public void onProviderEnabled(String provider) { Log.d("DEBUG", "called onProviderEnabled"); } //オプションメニューを作成 @Override public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); menu.add(0, 0, 0, "衛星写真"); menu.add(0, 1, 1, "地形ビュー"); menu.add(0, 2, 2, "ハイブリッド"); menu.add(0, 3, 3, "ノーマル"); menu.add(0, 4, 4, "渋滞情報オン"); menu.add(0, 5, 5, "渋滞情報オフ"); return true; } //メニューアイテムが選択された時の処理 @Override public boolean onContextItemSelected(@NonNull MenuItem item) { super.onContextItemSelected(item); int itemID = item.getItemId(); switch (itemID) { case 0: //衛星写真を表示 mMap.setMapType(GoogleMap.MAP_TYPE_SATELLITE); break; case 1: //地形ビューを表示 mMap.setMapType(GoogleMap.MAP_TYPE_TERRAIN); break; case 2: //ハイブリッドビューの表示 mMap.setMapType(GoogleMap.MAP_TYPE_HYBRID); break; case 3: //ノーマルビューの表示 mMap.setMapType(GoogleMap.MAP_TYPE_NORMAL); break; case 4: //渋滞情報を表示 mMap.setTrafficEnabled(true); break; case 5: //渋滞情報を解除 mMap.setTrafficEnabled(false); break; default: break; } return true; }

}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問