アプリSplash activity screen
を5秒間起動してから開きLogin activity screen
、正しいユーザーとパスワードを開いたMenu activity (listActivity)
後、各行をクリックして開きMyCity activity
ます。
アップデート:
私が取得しようとしているのは、あなたが私のアプリのどこにいても、ホームボタンを押したときだけでなく、何らかの理由で私のアプリから離れた場合の例です:
ホームボタンを押して別のアプリをチェックしてから、私のアプリに戻りたい.
whatsup または email に新しいメッセージを表示する通知があり、whatsup または open email を開いてから my app に戻ります。
3-一定期間携帯電話を離れた後、もう一度アプリを確認したい.
4-電源ボタンを押して電話を閉じ(画面をロック)、ロックを開いてアプリに戻りたい.
なんらかの理由でアプリを離れたときにいつでも意味しますが、アプリ全体を終了してから再びアプリに戻りたい場合は、ログイン画面を開いてユーザー名とパスワードを再入力する必要があります。
finish();
Splash アクティビティと Login アクティビティの両方を呼び出しました。
私は試しました:android:clearTaskOnLaunch="true"
マニフェストのログインアクティビティで、それはうまくいきません。
アドバイスをいただければ幸いです。
完全な動作コードを書いてください。
ログイン アクティビティ:
public class Login extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login);
Button b = (Button) findViewById(R.id.loginbutton);
b.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
EditText username = (EditText) findViewById(R.id.login);
EditText password = (EditText) findViewById(R.id.password);
if(username.getText().toString().length() > 0 && password.getText().
toString().length() > 0 ) {
if(username.getText().toString().equals("test") && password.getText().
toString().equals("test")) {
Intent intent = new Intent(Login.this, Menu.class);
startActivity(intent);
finish(); }
} }
}); } }
メニュー アクティビティ :
public class Menu extends ListActivity {
String classes[] = { "City1", "City2", "City3", "City4", "City5"};
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setListAdapter(new ArrayAdapter<String>(Menu.this,
android.R.layout.simple_list_item_1, classes));
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
// TODO Auto-generated method stub
super.onListItemClick(l, v, position, id);
String cheese = classes[position];
try {
Class ourClass = Class.forName("com.test.demo.MyCity");
Intent ourIntent = new Intent(Menu.this, ourClass);
ourIntent.putExtra("cheese", cheese);
startActivity(ourIntent);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}}
MyCity アクティビティ :
public class MyCity extends Activity {
TextView tv1;
String city;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.city);
initializeTextViews();}
private void initializeTextViews() {
tv1=(TextView)findViewById(R.id.city_tv);
city=getIntent().getStringExtra("cheese");
if(city.equalsIgnoreCase("City1")){
tv1.setText(Html.fromHtml(getString(R.string.city1)));}
else if(city.equalsIgnoreCase("City2")){
tv1.setText(Html.fromHtml(getString(R.string.city2)));}
else if(city.equalsIgnoreCase("City3")){
tv1.setText(Html.fromHtml(getString(R.string.city3)));}
else if(city.equalsIgnoreCase("City4")){
tv1.setText(Html.fromHtml(getString(R.string.city4)));}
else if(city.equalsIgnoreCase("City5")){
tv1.setText(Html.fromHtml(getString(R.string.city5)));}
}}
私のマニフェスト:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.test.demo"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="15" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".Splash"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".Login"
android:label="@string/app_name"
android:clearTaskOnLaunch="true">
<intent-filter>
<action android:name="com.test.demo.LOGIN" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name=".Menu"
android:label="@string/app_name" >
<intent-filter>
<action android:name="com.test.demo.MENU" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name=".MyCity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="com.test.demo.MYCITY" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
</application>
</manifest>
2番目の更新:私は私が望むものの半分に達しましたが、それでも達成できないいくつかのステップは以下のように説明されています:
android:clearTaskOnLaunch="true"
スプラッシュ活動に応募 することで、
メニューアクティビティで戻るボタンの動作を防ぎます:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
moveTaskToBack(true);
return true;
}
return super.onKeyDown(keyCode, event);
} }
SO今すぐホームボタンを押してアプリを離すと、アプリに戻ります:
ログイン アクティビティに直接移動します。
しかし、今の主な目標は次のとおりです。
もしも :
携帯電話から離れているときは画面がロックされているか、電源ボタンを軽く押して携帯電話をロックします。
また
通知からのOPENED MESSAGE
また
通知からOPENED EMAIL
また
あなたはCALLを持っていてそれに答えます、
その後、私のアプリに戻ります。ログイン アクティビティにはなりませんが、以前のページに戻ります。
アドバイスをお願いします、ありがとう。
盗まれた更新:
適用するのではなく、ホームボタンをオーバーライドして戻るボタンを制御する別のコードを使用しました:android:clearTaskOnLaunch="true"
マニフェストのスプラッシュアクティビティに、メニューアクティビティにダウンコードを適用するだけです:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
moveTaskToBack(true);
return true;}
else if (keyCode == KeyEvent.KEYCODE_HOME) {
Intent i=new Intent(Menu.this,Login.class);
startActivity(i);
finish();
return true;}
return super.onKeyDown(keyCode, event);}